Autor Zpráva
TomasJ
Profil
Dobrý den mám takový problém se zjištěním kolik lidí za dnešek bylo na mém webu a kolik je online.
Tady je PHP kód:

<?php
function Counter()
{
$ip = getenv("REMOTE_ADDR"); //zjistime IP

//zjistime zda IP je dnes v tabulce
$dotaz = mysql_query("SELECT * FROM OnlineUsers WHERE datum=NOW() AND ip='$ip'");

//pokud ano, tak zmenime cas navstevy na aktualni
if ($dotaz) 
$dotaz2 = mysql_query("UPDATE OnlineUsers SET cas='".time()."' WHERE datum=NOW() AND ip='$ip'");
else //pokud neni, vlozime
$dotaz2 = mysql_query("INSERT INTO OnlineUsers (ip, datum, cas) VALUES('$ip',NOW(),'".time()."');");
}

function Visits()
{

$Navstevy = array();

$celkem = mysql_query("SELECT count(*) FROM OnlineUsers");
$dnes   = mysql_query("SELECT count(*) FROM OnlineUsers WHERE datum=NOW()");
$online = mysql_query("SELECT count(*) FROM OnlineUsers WHERE datum=NOW() AND cas>='".(time()-180)."'");

list($Navstevy['celkem']) = mysql_fetch_array($celkem);
list($Navstevy['dnes'])   = mysql_fetch_array($dnes);
list($Navstevy['online']) = mysql_fetch_array($online);

return $Navstevy;
}
Counter();
$Visits = Visits();
echo "Celkem: ".$Visits['celkem']."<br>";)
echo "Dnes: ".$Visits['dnes']."<br>";
echo "Online: ".$Visits['online']."<br>";
?>

Celkem návštěv ukazuje, ale dnešek a právě online píše vždy 0. Prosím poraďte.
petr 6
Profil
A co ukládáš do sloupce datum?
Pokud datum, tak to se asi nebude rovnat NOW()
TomasJ
Profil
Reaguji na petra 6:
No ten PHP Script mám z TOHOTO webu a tak nevím co je na tom špatného, protože v komentářích níže si nikdo nijak nestěžoval na nesprávnou funkčnost scriptu...
petr 6
Profil
To věřím, ja si zase funkci NOW() vygoogloval i vyzkoušel v mé databázi a funguje tak, že now() vrací datum a čas, nicméně mi (MySQL 5.1.30) stačí nahradit funkci NOW() funkcí CURRENT_DATE(), pak vše funguje tak, jak požaduješ.
TomasJ
Profil
Reaguji na petra 6:
Děkuji, vše již funguje :)
perwin
Profil
Potřebuji se zeptat, proč mi to nefunguje? Vše, co je v tomto kódu zapsáno, a co mám udělat jsem udělal. Děkuji

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