Autor Zpráva
maks
Profil
Ahoj,

mám tu jeden SQL dotaz, do kterého koukám už asi 20minut, ale nemůžu přijít na to, kde je chyba. Poradíte, prosím?

mysql_query ("UDPATE tabulka SET pozice = '0." . $line_down . "' WHERE id = " . $id) or die (mysql_error());
chyba: klasická 1064 - chybná syntaxe
echo ("UDPATE tabulka SET pozice = '0." . $line_down . "' WHERE id = " . $id);
vypíše UPDATE tabulka SET pozice = '0.1.2.1' WHERE id = 3, tady by tedy chyba být neměla. Nebo je tu něco, co permanentně přehlížím?


Abych to trochu uvedl do situace, celý inkriminovaný úsek kódu vypadá následovně:
foreach ($lines_down as $id => $line_down)
  {
    mysql_query ("UDPATE tabulka SET pozice = '0." . $line_down . "' WHERE id = " . $id) or die (mysql_error());
  }

V poli $lines_down jsou 4 položky, celkově tedy budou 4 SQL dotazy měnící pozici podle ID. Šlo by toto případně zapsat nějak úsporněji a třeba jedním dotazem?

Jde o to, že mám v dvojrozměrném poli určitý počet položek, které chci změnit:
array ([id] => pozice)
array ([3] => 1.2.1, [6] => 1.3.5, [10] => 1.3.6, [24] => 2.5.3.2)
a nenapadlo mě nic lepšího, než to pole projít foreachem a postavit 4 dotazy. Ovšem co to udělá, když bude položek třeba 30, to jsem zatím nezkoušel.



Děkuji za pomoc, případně i radu :-)
maks
Profil
Aha, tak už jsem našel chybu, hledal jsem podle jiného parametru než ID a ID3 v tabulce nemám.


Přesto můj další dotaz, zda-li by to šlo napsat úsporněji než foreachem, trvá.

Děkuji.
Alphard
Profil
Možná tohle nebo aspoň odeslat všechny dotazy najednou.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: