Autor Zpráva
Misa
Profil *
Ahoj. Udělám tohle :

$db_command = mysql_query("UPDATE fskazy SET dorucenka = '0' WHERE adresat = '".$_SESSION['login']."' LIMIT ".$next.", 10") or die (mysql_error());

a řekne mi to tohle :

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 ' 10' at line 1

Absoluteně mi neni jasný co je špatně... chci jenom updatovat deset doručenek. Nemohl by mi někdo píchnout? Děkuji.
Kajman
Profil
Vypište si výsledný sestavený dotaz, nejspíše bude v $next něco jiného, než očekáváte.
Misa
Profil *
žádný nápady jo?


Ne. V $next je číslo.


Kajman:
Udělal jsem ten výsledný sestavený dotaz, ale nic nového jsem se nedozvěděl.

Došlo k chybě v dotazu: UPDATE fskazy SET dorucenka = 0 WHERE adresat = 'NejakyNick' LIMIT 0,10
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 '10' at line 1
Tori
Profil
U UPDATE zřejmě může být limit pouze jedno číslo (= počet řádků počínajíc prvním, nikoli výběr řádků). Můžete to ale obejít poddotazem, ve kterém si vyberete potřebný rozsah řádků:

UPDATE tabulka 
INNER JOIN (SELECT id FROM tabulka WHERE podminka LIMIT 5, 10) t2 USING (id)
SET tabulka.sloupec = 'novaHodnota'
- id je primární klíč nebo jiný jedinečný identifikátor řádku
Misa
Profil *
Tori:

čili jsem to upravil takhle :
$db_command = mysql_query("UPDATE fskazy INNER JOIN (SELECT ID_vzkazu FROM fskazy WHERE adresat = '".$_SESSION['login']."' LIMIT ".$next.", 10) t2 USING (ID_vzkazu) SET fskazy.dorucenka = '0'") or die (mysql_error());

problém je že to neudělá vůbec nic. ani chybu ani to co chci. nic. jenom bych rád uvedl že tohle :

$db_command = mysql_query("UPDATE fskazy SET dorucenka = 0 WHERE adresat = '".$_SESSION['login']."'") or die (mysql_error());

funguje.


jenom to neudělá to co chci. je to bez toho limitu
Kajman
Profil
Misa:

problém je že to neudělá vůbec nic

Pokud dáte limit bez order by, tak se těžko db trefí přesně do těch 10 záznamů, které chcete upravit. Počet změněných řádků zjistíte např. díky mysql_affected_rows, ale pokud tam byly ve sloupci dorucenka nuly, tak se to za změnu nebude považovat.
Misa
Profil *
A jo. order by ... no jo no. Tak Vám moc děkuju. Už to funguje jak má. :o)

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:

0