Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem wielkokrotnego UPDATE [PHP/MySQL]
Forum PHP.pl > Forum > PHP
otakon
witam,
generuje po przez php zapytanie dla bazy MySQL, ktore przypisuje do zmiennej,gdy chce wykonac je, niedziala. Po wyswietleniu go po przez echo,skopiowaniu i wklejeniu do PHP myAdmin wykonuje sie poprawnie.

tworzenie zapytania:
  1. <?php
  2. $zapytanie .= "UPDATE `zamowienia` SET `ilosc` = `ilosc` + '".$ilosc."' WHERE `id` = '".$id."' AND `zlozenie` = '".$czas."'; "
  3. ?>


kilka krotnie jest przypisywane a nastepnie wykonuje
  1. <?php
  2. mysql_query($zapytanie);
  3. ?>


id i zlozenie razem tworza klucz glowny
Czy PHP myAdmin dopisuje cos do zapytania? czemu moje zapytanie nie dziala po przez PHP?


Prosze o pomoc
wookieb
A jaki zwraca bład?
sprawdz czy masz poalczenie z baza. A najlepiej to po wykonaniu zapytanie daj
Kod
echo mysql_error();
otakon
wydruk bledu:

  1. <?php
  2. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '; UPDATE `zamowienia` SET `ilosc` = `ilosc` + '3' WHERE `id` ='1210' AND `zlo' at line 1
  3. ?>


przykladowy kod ktory oczywiscie wykonuje sie w PHP myAdmin
UPDATE `zamowienia` SET `ilosc` = `ilosc` + '1' WHERE `id` ='1010' AND `zlozenie` ='11110051017' ;
UPDATE `zamowienia` SET `ilosc` = `ilosc` + '3' WHERE `id` ='1210' AND `zlozenie` ='11110051017' ;
UPDATE `zamowienia` SET `ilosc` = `ilosc` + '3' WHERE `id` ='1212' AND `zlozenie` ='11110051017' ;
DELETE FROM `magazyn` WHERE `idm` = '11110051017' AND `dodano` = '1218209446' LIMIT 1;
DELETE FROM `magazyn` WHERE `idm` = '11110051017' AND `dodano` = '1218209583' LIMIT 1;
DELETE FROM `magazyn` WHERE `idm` = '11110051017' AND `dodano` = '1218209787' LIMIT 1;


nie wiem o co chodzi mysql_query($zapytanie,$link) wykonuje sie w funkcji ale $link jest globalem wiec nie wiem dlaczego tak sie dzieje
wlamywacz
Manual w dłoń. Funkcją mysql_query nie wykonasz multi zapytań. Czyli jedno zapytanie = jedna funkcja mysql_query. Musisz zrobić tablicę zapytań i w pętli przepuścić mysql_query
otakon
dzieki wielkie, myslalem ze jak w PHP myAdmin wklejam calosc to i on wykonuje multi zapytanie skoro nie wywala bledu

WATEK ZAMKNIETY
qBK
Tak przy okazji, inna kwestia:

UPDATE `zamowienia` SET `ilosc` = `ilosc` + '3' WHERE `id` ='1212' AND `zlozenie` ='11110051017' ;[/b]

Trochę mnie to zdziwiło, że liczby dajesz w apostrofy, zawsze piszę je normalnie (`id` = 17 itd.), ale skoro działa to ok. Za to z tego co pamiętam to gdyby zamiast apostrofu był cudzysłów to chyba mysql wywaliłby błąd.
wlamywacz
'' dodaje się w zależności od pola.
rzymek01
tam gdzie ma być liczba to nie dajesz ' ani ", bo po co serwować MySQLowi dodatkową konwersję?
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.