Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: błąd w składni UPDATE do wielu tabel...
Forum PHP.pl > Forum > PHP
missile
Witam!
Napisałem zapytanie do bazy:

  1. <?php
  2.  
  3. $sql_query = "UPDATE posts p, users_count u
  4. SET p.post_topic_id = '" . $PostTopicId . "', u.statement_count = '" . $_SESSION['StatementCount'] . "'
  5. WHERE p.post_id ='" . $PostTopicId . "'
  6. AND u.user_id = '" . $_SESSION['UseId'] . "' ";
  7.  
  8. $sql_result = mysql_query($sql_query, $conn)
  9.  or die ('Błąd aktualizacji id tematu!<br /><br />' . mysql_error());
  10.  
  11. ?>


Skrypt działa; ale tylko częściowo, nie działa update pola p.post_topic_id; i wywala błąd:

Kod
You have an error in your SQL syntax near 'p, users_count u SET p.post_topic_id = '60', u.statement_count = '1275'' at line 1


Dodam, że pozostałe pola zostają zaktualizowane zghodnie z założeniem. Przeglądnąłem pół internetu winksmiley.jpg i nie znalazłem wyjaśnienia swojego błędu. Może tu ktoś zna odpowiedź?
Kuziu
Chyba powinieneś to rozbić na 2 zapytania.

Z tego co widzę nie da się zrobić UPDATE na 2 tabelach jednocześnie:

  1. UPDATE news n, users u SET n.authorid='5'


To zapytanie nie daje żadnego efektu




  1. UPDATE news n SET n.authorid='5'


A to tak
missile
Wiem, że można to zrobić na dwóch zapytaniach, ale ja chce na jednym. Z manuala wynika, że można zrobić update dwóch tabel jednocześnie. Jednak problem może wynikać z wersji MySQL moja to 3.23.58, nie jestem pewny też skladni ze względu na mój "angielski" sadsmiley02.gif
Kuziu
Musiałbyś je chyba połączyć za pomocą WHERE

np.

  1. ... WHERE posts.id = users_count.post_id


Czyli musiałyby mieć jakieś ze sobą powiązanie jeśli są to 2 niezależne od siebie tabele to raczej się nie da.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.