Autor | Zpráva | ||
---|---|---|---|
zdenek Profil |
#1 · Zasláno: 26. 8. 2011, 14:42:53
ahoj, mám problém. mám kód:
$id = $_POST['id']; $polozka = $_POST['polozka']; $cena = $_POST['cena']; $sql = 'UPDATE oslavy SET polozka="$polozka", cena="$cena" WHERE id="$id"'; mysql_query("set names utf8"); $result = mysql_query($sql) or die (mysql_error()); if ($result) { echo "Zaznam byl zmenen"; } else { echo "Zaznam nebyl zmenen"; } ale nefunguje. když ale zmáčknu na odesílací tlačítko formulře, ten se odešle a zobrazí se mi: Zaznam byl zmenen, ale nebyl změněn. klidně sem pak můžu dát i formulář, ale nemyslím si, že by byl potřeba. jinak mám tabulku v mysql, která má strukturu: id --------------------- int polozka ---------------------varchar cena -------------------------int předem díky za odpovědi. |
||
Tori Profil |
#2 · Zasláno: 26. 8. 2011, 14:49:13
Místo apostrofů má řetězec být v uvozovkách.
|
||
Kajman_ Profil * |
#3 · Zasláno: 26. 8. 2011, 14:57:45
zdenek:
A pro kontrolu, zda byl změněn používejte mysql_affected_rows() Také si kód ošetřete, aby nebyl náchylný k nabourání díky na sql injection. |
||
zdenek Profil |
#4 · Zasláno: 26. 8. 2011, 15:39:18
Kajman:
díky. po použití mysql_affected_rows() |
||
Kajman_ Profil * |
#5 · Zasláno: 26. 8. 2011, 15:56:51
zdenek:
„co to znamená?“ Že bylo v databázi změněno nula řádků. Takže buď žádný řádek neodpovídá podmínce where, nebo nové hodnoty v set jsou na chlup stejné, jako straré. Klidně si vypište sestavený sql příkaz, ať máte jasnější představu, co z toho vzniklo - třeba příjdete na to, že $id se neinpretuje ve stringu uzavřeném do apostrofů. |
||
zdenek Profil |
#6 · Zasláno: 26. 8. 2011, 16:01:54
Kajman:
trochu jsem to předělal a takhle to vypadá teď: $id = $_POST['id']; $polozka = $_POST['polozka']; $cena = $_POST['cena']; $sql = "UPDATE oslavy SET polozka='$polozka', cena='$cena' WHERE id='$id'"; mysql_query("set names utf8"); $result = mysql_query($sql) or die (mysql_error()); if ($result) { echo "Zaznam byl zmenen"; printf(mysql_affected_rows()); } else { echo "Zaznam nebyl zmenen"; } |
||
Medvídek Profil |
#7 · Zasláno: 26. 8. 2011, 16:05:55 · Upravil/a: Medvídek
zdenek:
mysql_query("set names utf8"); $id = intval($_POST['id']); $polozka = mysql_real_escape_string($_POST['polozka']); $cena = intval($_POST['cena']); $result = mysql_query("UPDATE oslavy SET polozka = '".$polozka."', cena = ".$cena." WHERE id = ".$id." "); if(!$result) echo mysql_error(); else { echo "Zaznam byl zmenen"; printf(mysql_affected_rows()); } |
||
zdenek Profil |
#8 · Zasláno: 26. 8. 2011, 16:19:35
Medvídek:
stále to nefunguje. i po tvé úpravě to pořád píše 0 |
||
Davex Profil |
#9 · Zasláno: 26. 8. 2011, 18:44:33
Jak vypadá záznam v tabulce oslavy s id, které bylo zadáno do formuláře? Jak vlastně vypadá zdrojový kód formuláře a jaké jsou konkrétně odeslané údaje?
|
||
Časová prodleva: 13 let
|
0