Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> select w update
Papub
post 22.10.2010, 15:53:54
Post #1





Grupa: Zarejestrowani
Postów: 113
Pomógł: 1
Dołączył: 17.02.2006

Ostrzeżenie: (0%)
-----


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";
Go to the top of the page
+Quote Post
Mostrom
post 22.10.2010, 16:02:05
Post #2





Grupa: Zarejestrowani
Postów: 83
Pomógł: 3
Dołączył: 17.04.2007

Ostrzeżenie: (0%)
-----


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?

Ten post edytował Mostrom 22.10.2010, 16:05:18
Go to the top of the page
+Quote Post
Papub
post 26.10.2010, 15:42:08
Post #3





Grupa: Zarejestrowani
Postów: 113
Pomógł: 1
Dołączył: 17.02.2006

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
modern-web
post 26.10.2010, 16:39:55
Post #4





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

Ostrzeżenie: (0%)
-----


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.

Ten post edytował modern-web 26.10.2010, 16:47:59


--------------------
Pomogłem? Kliknij `Pomógł`. To nic nie kosztuje, a mnie usatysfakcjonuje! ;)
Go to the top of the page
+Quote Post
Papub
post 26.10.2010, 16:48:59
Post #5





Grupa: Zarejestrowani
Postów: 113
Pomógł: 1
Dołączył: 17.02.2006

Ostrzeżenie: (0%)
-----


Yhym. No dobrze. W takim razie dziękuje za wyprowadzenie mnie z błędu i za pomoc smile.gif Pozdrawiam.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.07.2025 - 10:34