MySQL zoufalost

Ahoj :( Vážně nevím, kde je chyba, tenhle kód už jsem projížděl tisíckrát a vím a mám vyzkoušeno, že všechny proměnné které používám jsou zadané a mají smysluplnou hodnotu. Je to dlouhý, takže chápu, že se vám to nechce číst. Nicméně nenajde se nějakej odvážlivec ? Už na tom sedím hodiny...

for($i=1;$i<=20;$i++) {
$kdo = $ppl[$i];
mysql_query("UPDATE doch SET jmeno = '$kdo' WHERE id = '$i'");

$stavik1 = $akce1_stav[$i];
switch($id_akce1):
case 1:
mysql_query("UPDATE doch SET prvni = '$stavik1' WHERE id = '$i'");
break;
case 2:
mysql_query("UPDATE doch SET druha = '$stavik1' WHERE id = '$i'");
break;
case 3:
mysql_query("UPDATE doch SET treti = '$stavik1' WHERE id = '$i'");
break;
endswitch;

$stavik2 = $akce2_stav[$i];
switch($id_akce2):
case 1:
mysql_query("UPDATE doch SET prvni = '$stavik2' WHERE id = '$i'");
break;
case 2:
mysql_query("UPDATE doch SET druha = '$stavik2' WHERE id = '$i'");
break;
case 3:
mysql_query("UPDATE doch SET treti = '$stavik2' WHERE id = '$i'");
break;
endswitch;

$stavik3 = $akce3_stav[$i];
switch($id_akce3):
case 1:
mysql_query("UPDATE doch SET prvni = '$stavik3' WHERE id = '$i'");
break;
case 2:
mysql_query("UPDATE doch SET druha = '$stavik3' WHERE id = '$i'");
break;
case 3:
mysql_query("UPDATE doch SET treti = '$stavik3' WHERE id = '$i'");
break;
endswitch;

mysql_query("UPDATE doch_akce SET datum='$datum_akce1' WHERE id='$id_akce1'");
mysql_query("UPDATE doch_akce SET datum='$datum_akce2' WHERE id='$id_akce2'");
mysql_query("UPDATE doch_akce SET datum='$datum_akce3' WHERE id='$id_akce3'");
mysql_query("UPDATE doch_akce SET akce='$akce1' WHERE id='$id_akce1'");
mysql_query("UPDATE doch_akce SET akce='$akce2' WHERE id='$id_akce2'");
mysql_query("UPDATE doch_akce SET akce='$akce3' WHERE id='$id_akce3'");
A tohle taky nefunguje-

$jmeno_akce = "Akce ".$id;
mysql_query("UPDATE doch_akce SET datum = '9999-12-30', akce = '$jmeno_akce' WHERE id = '$id'");
for($i=1;$i<=20;$i++) {
switch($id):
case 1:
mysql_query("UPDATE doch SET prvni = '?' WHERE id = '$i'");
break;
case 2:
mysql_query("UPDATE doch SET druha = '?' WHERE id = '$i'");
break;
case 3:
mysql_query("UPDATE doch SET treti = '?' WHERE id = '$i'");
break;
endswitch;
me se nezda tohle: '"

zkus vynech ty uvozovky(je to jen tip, moc se mi prohlizet nechtelo)
Nemohl bys upresnit, co to ma delat? Ja jsem z toho trochu paf.
myslel jsem napsat misto:

mysql_query("UPDATE doch SET druha = '?' WHERE id = '$i'");

tohle:

mysql_query(UPDATE doch SET druha = '?' WHERE id = '$i');

ale to byl jen takovej momentalni napad(nezkousel jsem to)

dalsi co bych moch poradit, je vyzkouseni selectu v phpmyadmin(s konkretnima hodnotama, ale to uz jsi nejspis udelal)
spook:

>> mysql_query(UPDATE doch SET druha = '?' WHERE id = '$i');

Tohle je nesmysl.
Buď neumim základy PHP s proměnnejma, ale tohle mi nesedí:

mysql_query("UPDATE doch_akce SET datum = '9999-12-30', akce = '$jmeno_akce' WHERE id = '$id'");

zkus odebrat u tý proměnný $id ty ' ' protože nevim, odkdy má proměnná uvozovky...

Možná se pletu, ale za zkoušku to stojí...
Pokud je proměnná $id typu integer, tak apostrofy v SQL dotazu být nemusí, ale když tam jsou chybu by to IMHO vypsat nemělo.
možná ťeklep , moje neznalost nebo to je dobře...

mysql_query("UPDATE doch_akce SET datum = '9999-12-30', akce = '$jmeno_akce' WHERE id = '$id'");

ta čárka za tim SET datum = '999-12-30'

tzn potom to bude

mysql_query("UPDATE doch_akce SET datum = '9999-12-30' akce = '$jmeno_akce' WHERE id = '$id'");

a samozřejmě ty uvozovky...
ehhm. Možná tohle to brzdí:

for($i=1;$i<=20;$i++)

protože tam máš $i=1 potom kontroluješ , přičítáš a pak zase přiděluješ $i 1.
Je to IMHO skript, kterej pořád běhá dokola a nikdy neskončí. Pokud to je účel, tak sry.Zkus tam hodit
$i=1
for($i<=20;$i++)

Možná si tam budeš muset doplnit ; protože ty většinou píšu jinam, než mam.
columbo: blbost, $i = 1 sa nastavi na zaciatku
Columbo:

Opět blbost, ta čárka tam být musí (před "akce"):

>> mysql_query("UPDATE doch_akce SET datum = '9999-12-30' akce = '$jmeno_akce' WHERE id = '$id'");
lacop>>no právě. Jenomže po přičtení se zase nastaví na 1
NIE! to sa nastavi len pri zaciatku cyklu LEN RAZ
lacop>>tak sry. Já sem zvyklej ze základů C++ a VB... A ActionScriptu.
Adam: no možná je moje zdůvodnění blbost, ale jsem pro odstranění apostrofů u $id. Sice číselné hodnoty myslím můžou a nemusí být v apostrofech; ale když je to v SQL dotazu v podmínce, tak jestli není problém v tom, že když tam apostrofy jsou, považuje se $id za textovou proměnnou, u který by v podmínce muselo bejt LIKE místo =.
Prostě bych zkusila zadat $id bez apostrofů, jak bylo řečeno výše, a pak se uvidí.
dis:

Když to vemu z praxe, tak to funguje z apostrofy i bez nich a zrovna tak, jestli tam je rovnítko nebo LIKE. Vím, že to má být tak, jak to píšeš.
blahapet:

hm tak to pak už nevím. Já tušila že kolem číselné proměnné apostrofy nemusí, ale můžou být.. jen mě to napadlo, jestli zrovna v té podmínce to nemůže dělat problémy. A že u podmínek v SQL má být u textové proměnné LIKE, to jsem si někde přečetla a utkvělo mě to, ale asi blbě ;-)
Tak, tak. Napsal jsem to trochu blbě. U číselné proměnné můžou být a nemusí (správně by neměly), kdežto u textové být musí, jinak to vyhodí error. S tím LIKE jsem to nezkoušel, pokud jsem porovnával čísla mezi sebou, ale rovnítko rovněž funguje u obojího.
teď jsem se koukala po netu a rozhodně jsem objevila i rovnítko pro porovnávání textových hodnot, takže beru zpět, tamto s tím LIKE. Bylo to tuším někde v Koskovi, ale možná jsem to fakt špatně pochopila.

Každopádně by mě stejně zajímalo, jak se vlastně projevuje, že ten výše uvedený skript nefunguje. Hází to nějaké chyby nebo to prostě neupdatuje ty záznamy?
dis:

IMHO co my tady dva teď řešíme, s tím to vůbec nesouvisí.
právě, chtěla jsem se vrátit k původnímu problému... ;-)
Veškeré query bych dal do proměnné. Pak si tu proměnnou vypiš (případně text zkopíruj a prožeň třeba přes mysql admina, možná tam je fakt chyba), pak query z proměnné proveď a po provedení si nech vypdat mysql_error() - nebo jak se to jmenuje... Určitě tu chybu najdeš rychleji, bude tam míň mysql_query() a vůbec... (-;