Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Problem z update bazy danych
Forum PHP.pl > Forum > Przedszkole
Tomplus
Witam,

Mam następujący kod SQL:
  1. UPDATE `pilkarze` SET `trening` = '0' WHERE `pid` = 1416;
  2. UPDATE `pilkarze` SET `trening` = '2' WHERE `pid` = 1732;
  3. UPDATE `pilkarze` SET `trening` = '2' WHERE `pid` = 1738;
  4. UPDATE `pilkarze` SET `trening` = '2' WHERE `pid` = 1739;
  5. UPDATE `pilkarze` SET `trening` = '2' WHERE `pid` = 1367;
  6. UPDATE `pilkarze` SET `trening` = '3' WHERE `pid` = 1740;


i wprowadzam go do bazy jako zmienną $update

w kodzie:

  1. mysql_query($update);


i nie działa, a wprowadzając powyższy kod SQL do bazy danych SQL bezspośrednio, to aktualizuje się bez problemu, bez ŻADNEGO błędu.

tabela MySQL jest w kodowaniu MyISAM, a kolumna trening ustawiona jest jako tinyint(4)


- napewno zmienna $update ma te dane.
- napewno dane z zmiennej $update się przez PHPMyAdmin.


Proszę o pomoc smile.gif

bastard13
Nie dziala ci, poniewaz mysql_query nie dziala przy kilku zapytaniach, wiec musisz je wywolywac osobno lub stworzyc obiekt klasy mysqli i uzyc funkcji multi_query().
Tomplus
faktycznie.... dziękuje bardzo.

Właśnie tutaj pojawiło się moja nie wiedza na temat funkcji mysql_query(), a mysqli muszę wykorzystać, bo staram się aby skypty wykonywały jak najlmniej zapytan do bazy SQL.

cojack
multi_query Ci w tym nie pomoże, skrypt i tak wykona tyle samo zapytań, co mysql_query w pętli. Także nie wiem o czym piszesz kolego. Mógłbyś to zrobić tak:

  1. UPDATE `pilkarze` SET `trening` = '0' WHERE `pid` = 1416;
  2. UPDATE `pilkarze` SET `trening` = '2' WHERE `pid` IN ( 1732, 1738, 1739, 1367 );
  3. UPDATE `pilkarze` SET `trening` = '3' WHERE `pid` = 1740;


już masz 3 wykonane zapytania, ale i tak zostanie zaktualizowanych 6 wierszy.
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.