Zdravím,
takhle testuju hodnotu cookie, ale očekávané reakce se dočkám pouze, pokud cookie odpovídá údaji z db. V opačném případě se zobrazí jen prázdná obrazovka.
Nenapadá někoho proč to?
$sql = mysql_db_query("svi","SELECT * FROM autori WHERE login = '$_COOKIE[TestCookie]'");
while($data = mysql_fetch_assoc($sql)){
if (($data['login']) == ($_COOKIE['TestCookie']))
echo 'jj';
else
echo 'neee';
}
Řekl bych, že je to proto, že SQL dotaz vrátí prázdný objekt (nic nenajde v db) a pak podmínka ve while (mysql_fetch_assoc) bude false a přeskočí obě echa. Tedy obrazovka zůstane prázdná.
Díky za reakci. Pokud ale nic nenajde, tak přece nesplní tu podmínku a pro všechny další případy má vypsat to neee.
Zkusil jsem bezvýsledně:
$sql = mysql_db_query("svi","SELECT * FROM autori WHERE login = '$_COOKIE[TestCookie]'");
while($data = mysql_fetch_assoc($sql)){
if (($data['login']) == ($_COOKIE['TestCookie']))
echo 'jj';
elseif (empty($data['login']))
echo 'neee';
}
echo '<hr>'.$_COOKIE['TestCookie'];
Pokud nic nenajde, tak se hlavně neprovedou příkazy, které jsou navázány na while. Tudíž už na tu podmínku if vůbec nedojde.
http://mirrors.inway.cz/manual/cs/control-structures.while.php
"Někdy, když je výraz ve while ohodnocen jako FALSE již při vstupu do cyklu, vnořený kód se neprovede vůbec."
to by potom mělo fungovat tohle, ne?
$sql = mysql_db_query("svi","SELECT * FROM autori WHERE login = '$_COOKIE[TestCookie]'");
if (empty($sql))
echo 'neee';
else{
while($data = mysql_fetch_assoc($sql)){
if (($data['login']) == ($_COOKIE['TestCookie']))
echo 'jj';
}
}
já to zkusil a nešlo to...
Víš, "nešlo to" je naprosto prádná fráze. Nedává jakoukoli informaci, které by se dalo chytit a tak ti asi nikdo nepomůže. Je třeba napsat, co to dělalo, co to nedělalo apod.
Jinak myslím, že na proměnnou $sql (typu resource) nemůžeš aplikovat funkci emtpy.
Zkus to přes mysql_num_rows:
if (mysql_num_rows($sql) == 0)
echo 'neee';
nooo, díky, nenapadlo mě, že to s empty nepůjde.
A co takhle
$sql = mysql_db_query("svi","SELECT * FROM autori WHERE login = '". $_COOKIE["TestCookie"] ."'");