chyba pri zpracovani prikazu UPDATE
10 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Prosim o pomoc v najiti chybky. Mam odkaz pro aktualizaci informaci. Prvni cast je, ze se vypisi informace z databaze. To funguje. Kdyz neco zmeni a dam Updatovat (ulozit) naskocimi chyba "Nastala chyba pri ukladani dat". Zkontroloval jsem to, ale nemuzu nejit chybu proc to nechce ulozit. Dik za pomoc // ********** EDITACE**************** <?php elseif ($a == "edit") { $sql="SELECT * FROM list WHERE cislo=$cislo"; $mysql_result= mysql_query($sql,$connection); $num_rows=@mysql_num_rows($mysql_result); if ($num_rows == 0) {echo "<br>Chyba ve zpracovávání dotazu.<br>";} else { while ($row = mysql_fetch_array($mysql_result)) { $cislo=$row["cislo"]; $cislo_zak=$row["cislo_zak"]; $okres=$row["okres"]; echo "<form action=\"index.php?a=save\" method=post>"; echo "<table>"; echo "<tr><td>Cislo:</td> <td><input type=text name=\"cislo\" value=\"$cislo\"></td></tr>"; echo "<tr><td>Cislo zakazky:</td> <td><input type=text name=\"cislo_zak\" value=\"$cislo_zak\"></td></tr>"; echo "<tr><td>Okres:</td> <td><input type=text name=\"okres\" value=\"$okres\"></td></tr>"; echo "<tr colspan=2><td ><input type=submit value=\"Updatovat\"></td></tr>"; echo "</table></form>"; } } } // ********** ULOZ**************** elseif ($a == "save") { $sql = "UPDATE list SET cislo='$cislo', cislo_zak='$cislo_zak', okres='$okres' "; if (!mysql_query($sql,$connection)) {echo "Nastala chyba pri ukladani dat.";exit; } else {echo "<br><b>Vše uloženo v pořádku..</b><br>[<a href=\"index.php\"> Zpět </a>]";} } ?>
-
Neměl bys v tom UPDATE mít nastavenou i podmínku WHERE? Takhle se ti (dle mé bohužel osobní zkušenosti :-) ) updatnou všechny řádky.
-
Měl by postupně odladit ten SQl dotaz: 1. Před mysql_query dej echo $sql; a podívej se, jak ten dotaz vypadá. 2. Pokud dotaz vypadá přijatelně, prožeň jej přes phpMyAdmin a podívej se na výsledek. VŽDY, když používáš mysql_NĚCO příkaz, dej za něj or die(mysql_error()) ať vidíš, co je špatně. Text "Nastala chyba při ukládání dat" je k ničemu. Nic z toho nezjistíš.
-
Přidal jsem podminku WHERE. Vyzkousel jsem take pridat (mysql_error()) a ukazala se chyba: You have an error in your SQL syntax near 'WHERE cislo = '2' SET cislo='2', cislo_zak='222', okres='Olomouc', popis='Sešík' at line 1 Nenapadne Vás prosím co to může být za chybu syntaxe? Děkji moc
-
Napiš sem ten upravený kód.
-
Dej sem celý SQL dotaz.
-
nechapu, proc nastavujes cislo na hodnotu 2 v tech radcich, kde ma cislo hodnotu 2... jinak to where patri samozrejme az za set
-
Uvadím SQL dotaz, pomoci kterého se snažím data aktualizovat a u kterého to vypisuje chybu syntaxe (nevypisoval jsem formular, ten je na zacatku a je rozsiren jeste o popis, cenu a datum). elseif ($a == "save") { $sql = "UPDATE list WHERE cislo = '$cislo' SET cislo='$cislo', cislo_zak='$cislo_zak', okres='$okres', popis='$popis', cena='$cena', datum='$datum' "; if (!mysql_query($sql,$connection)) { echo (mysql_error()); } else {echo "<br><b>Vše uloženo v pořádku..</b><br> [<a href=\"index.php\"> Zpět </a>]";} }
-
Jj to WHERE patří až za SET a dala bych do něj porovnávání nějakýho id (které se nemění), tak jak to je, je to imho nesmysl.
-
mozna ze id je cislo? V tom pripade: UPDATE list SET cislo_zak='$cislo_zak', okres='$okres', popis='$popis', cena='$cena', datum='$datum' WHERE cislo = '$cislo';