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é.

  1. 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>]";} } ?>
  2. 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.
  3. 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íš.
  4. 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
  5. Napiš sem ten upravený kód.
  6. Dej sem celý SQL dotaz.
  7. nechapu, proc nastavujes cislo na hodnotu 2 v tech radcich, kde ma cislo hodnotu 2... jinak to where patri samozrejme az za set
  8. 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>]";} }
  9. 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.
  10. 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';

← Zpět na všechna témata