Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: select w update
Forum PHP.pl > Forum > PHP
Papub
W czym tutaj tkwi błąd?
zapytanie ma zwiększyć pole ile o 1 dla id_podstrony. To id_podstrony ma być pobrane z innej tabeli. nazwa_podstrony to nazwa podstrony do której jest dopisane id. I to id właśnie chce wyciągnąć z tabeli.

$zapytanie2 = "UPDATE statystyki_co.id_podstrony, statystyki_co.ile SET id_podstrony=(SELECT struktura_strony.id_podstrony FROM struktura_strony WHERE struktura_strony.podstrona = '$nazwa_podstrony'), ile=ile+1";
Mostrom
Rób po kolei i co ważniejesze używaj odwróconych apostrofów `` i zwykłych ''. Mnie to nie raz namieszało w kodzie.
Nie działa ci dlatego, że przy wstawianiu zmiennych PHP w zapytaniu SQL nie postawiłeś cudzysłowiu i nie objąłeś zmiennej kropkami w ten sposób:

Kod
".$jakaśZmienna."


  1. $zapytanie1=" SELECT `id_podstrony` FROM `struktura_strony` WHERE `podstrona` = ' ".$nazwa_podstrony." ' "
  2. $zapytanie2= i tutaj update;


No i nie możesz poprostu sobie zmienić wartości tak: ile=ile+1, bo ja szczerze mówiąc sam nie wiem o co ci chodzi.
Czy chcesz zmienić nazwę kolumny o jeden, czy zawartość pola o jeden?
Papub
No ogólnie nie chce robić Twojego rozwiązania bo mi to zwiększa ilość zapytań do bazy. Wole mieć jedno zapytanie niż dwa. I właśnie nie wiem czy tak można zrobić jak ja robie. ile=ile+1 to ma zamysł zwiększania wartości w tej kolumnie o 1.
modern-web
Nie można.
Zapytania do bazy robi się osobno.
Liczy się wtedy ich kolejność.

Możesz wykonać SELECT, wyprowadzić go do zmiennej, a potem zmienną tą możesz użyć w UPDATE smile.gif
To chyba najlogiczniejsze podejście do tematu.

Pozdrawiam.



Edit:

  1. $zapytanie1 = ("SELECT struktura_strony.id_podstrony FROM struktura_strony WHERE struktura_strony.podstrona = '$nazwa_podstrony'";)
  2. $zapytanie2 = ("UPDATE statystyki_co.id_podstrony, statystyki_co.ile SET id_podstrony='$zapytanie1', ile=ile+1";)


Zrób najlepiej w podobny sposób do wyżej przedstawionego smile.gif

A i... to ile=ile+1 jest źle jeśli w kolumnie ile nie ma wartości liczbowej. Ja bym to wyprowadził do zmiennej na Twoim miejscu smile.gif
Niech kod będzie jak najbardziej czytelny.
Papub
Yhym. No dobrze. W takim razie dziękuje za wyprowadzenie mnie z błędu i za pomoc smile.gif Pozdrawiam.
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.