Autor Zpráva
World
Profil
Čau, potřebuji radu, mám proměnnou $userid, kterou získávám z cookie, používám ji skoro na celém webu, ale teď jsem narazil na problém. Potřebuji ji poslat spolu s formulářem v SQL dotazu, ale nedaří se mi. ale když zkusím nad tím formulářem echo "$userid"; tak se tam vypíše normálně id, které ten uživatel má.
zde je kód z kterého získávám $userid:
$cookie_read = explode("|", base64_decode($user));
$userid = addslashes($cookie_read[0]);
$userid = intval($cookie_read[0]);

a zde ten SQL dotaz:
$db->sql_query("INSERT INTO `character` (`id`, `name`, `userlevel`, `email`)
VALUES('$userid', '$name', '1', '$email)");
do db se všechno vloží (name a email souhlasí s tím co uživatel vyplní v polích formuláře ale pole s id zůstane prázdné :(
nevíte kde by mohla být chyba? podle potřeby můžu poskytnout více kódu, ale celý soubor sem dát nemůžu jelikož je moc velký...
djlj
Profil
A co takhle:

$db->sql_query("INSERT INTO `character` (`id`, `name`, `userlevel`, `email`) VALUES('".intval($_COOKIE['userid']).", '".$name."', '1', '".$email."')");

Mimochodem, za $email ti chyběl apostrof — to byl důvod neúspěšného vložení. Příště si vypiš mysql_error();.
djlj
Profil
Taky jsem tam udělal chybu, znovu:

$db->sql_query("INSERT INTO `character` (`id`, `name`, `userlevel`, `email`) VALUES('".intval($_COOKIE['userid'])."', '".$name."', '1', '".$email."')");

(Nejdou mi editovat příspěvky.)
World
Profil
Omlouvám se, je apostrof mi vypadl jen tu, a zkusil jsem ten kód, ale bohužel stále stejný problém :(
djlj
Profil
A co ti vypisuje mysql za chybu?
World
Profil
udělal jsem to takto, abych toho viděl co nejvíce, ale žádnou chybu to nehlásí, akorát je i v tom dotazu vidět, že už to místo id vypisuje 0:

$db->sql_query($q="INSERT INTO `character` (`id`, `name`, `userlevel`, `email`) VALUES('".intval($_COOKIE['userid']).", '".$name."', '1', '".$email."')");

echo $q."<br>";

echo mysql_error()."<br>";

echo "Počet ovlivněných řádků: ".mysql_affected_rows()."<br>";

a toto to vypisuje na stránce:

INSERT INTO `character` (`id`, `name`, `userlevel`, `email`) VALUES('0', 'abcde', 'neco@neco.cz')

Pocet ovlivnenych radku: 1

je to nějaké divné, nevim proč se tam to $userid nechce vecpat, a přitom v kódu nad tímto to používám na odhlašování v sql taky a tam to funguje, jedinej rozdíl je v tom že tam je SQL v podobě SELECT a UPDATE nikoliv INSERT ale v tom bych problém neviděl...
djlj
Profil
Použij ten druhý kód, který jsem psal. U prvního chybí apostrof za ".intval($_COOKIE['userid']).".
Maf
Profil *
Jestlize mas na serveru databazi MySQL, pak je asi dobre pouzivat v PHP taky funkce pro praci s MySQL (mluvim o sql_query->mysql_query)
djlj
Profil
Maf
To je zcela irelevantní, neboť $db->sql_query zcela jistě volá funkci mysql_query.
World
Profil
djlj
to jsem zkusil, to samé jako jsem psal v příspěvku předtím, zdá se mi že se vůbec nenaplňuje ta proměnná $userid, ale vůbec nevím proč, mám to celé jako funkci a a před tou funkci mám dotazy typu UPDATE...WHERE `id`=$userid a tam to normálně funguje, dneska jsem dost času zkoumal jaká by mohla být příčina, ale zatím jsem na nic nepřišel budu bádat dál, kdyby vás něco napadlo, tak sem napište, díky za pomoc

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