Autor Zpráva
zdenek
Profil
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
Místo apostrofů má řetězec být v uvozovkách.
Kajman_
Profil *
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
Kajman:

díky. po použití
mysql_affected_rows()
mi to napsalo 0. co to znamená? podle mého úsudku to znamená, že nebyl ovlivněn žádný řádek a to znamená, že mám někde chybu, že jo?
Kajman_
Profil *
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
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
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
Medvídek:

stále to nefunguje. i po tvé úpravě to pořád píše 0
Davex
Profil
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?

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