Autor | Zpráva | ||
---|---|---|---|
World Profil |
#1 · Zasláno: 3. 6. 2007, 16:54:08
Č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 |
#2 · Zasláno: 3. 6. 2007, 17:24:22
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 |
#3 · Zasláno: 3. 6. 2007, 17:25:21
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 |
#4 · Zasláno: 3. 6. 2007, 19:27:15
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 |
#5 · Zasláno: 3. 6. 2007, 21:44:54
A co ti vypisuje mysql za chybu?
|
||
World Profil |
#6 · Zasláno: 3. 6. 2007, 22:24:57 · Upravil/a: World
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 |
#7 · Zasláno: 3. 6. 2007, 22:51:08
Použij ten druhý kód, který jsem psal. U prvního chybí apostrof za ".intval($_COOKIE['userid']).".
|
||
Maf Profil * |
#8 · Zasláno: 4. 6. 2007, 03:21:02
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 |
#9 · Zasláno: 4. 6. 2007, 10:04:50
Maf
To je zcela irelevantní, neboť $db->sql_query zcela jistě volá funkci mysql_query. |
||
World Profil |
#10 · Zasláno: 4. 6. 2007, 17:44:44
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 |
||
Časová prodleva: 17 let
|
0