Stránka 1 z 1
Počítadlo přístupů
Napsal: čtv 25. čer 2009, 21:21
od arxeiss
Udělal jsem si počítadlo přístupů, a chtěl bych se zeptat jestli to nemá nějaké mouchy. Zkoušel jsem to a nikde jsem nic nenašel. Kdyby někdo měl nějaké jednodušší řešení, sem s ním.
Kód: Vybrat vše
$ip=$_SERVER['REMOTE_ADDR'];
$date=date("Y-m-d",time());
$dotaz="SELECT COUNT(*) FROM pristupy WHERE ip='$ip' and datum>'$date';";
$result=mysql_query($dotaz) or die (header("Location: errordb.php"));
$pristupden = mysql_result($result,0);
if($pristupden==0){
$dotaz="INSERT INTO pristupy(ip,datum) VALUES('$ip',now());";
mysql_query($dotaz) or die (header("Location: errordb.php"));
}
$dotaz="SELECT * FROM pristupy";
$myquery=mysql_query($dotaz) or die (header("Location: errordb.php"));
$pristupu=mysql_num_rows($myquery) or die (header("Location: errordb.php"));
Re: Počítadlo přístupů
Napsal: čtv 25. čer 2009, 21:43
od OndraSter
$dotaz="SELECT COUNT(*) FROM pristupy WHERE ip='$ip' and datum>'$date';";
jsi si jistý tím datum>'$date'?
nechápal jsem to tvoje, tak to ber s rezervou, nechce se mi to mazat, ještě se to může hodit:
Nevím, jestli jen na to špatně koukám, ale nějak se mi to nezdá, hlavně pokud $date je aktuální datum - odečti od něj třeba 2hod (nebo jaký chceš timeout přístupu na IP):
$date=date("Y-m-d",time());
->
$date=date("Y-m-d",time() - 7200);
(2 hod)
Nebo jak to vlastně máš? V DB máš i čas a tudíž to počítáš od půlnoci? Nemělo by tam být spíše >=? Takhle to kouká do budoucnosti, jestli to dobře chápu, příjde mi to mírně zmateně napsané.
Re: Počítadlo přístupů
Napsal: čtv 25. čer 2009, 21:55
od arxeiss
Tak chci počítat 1 přístup denně, a pokud je v db někde čas větší než aktuální datum tak to vybere. S tím >= jsi měl pravdu, prakticky je sice nemožné aby tu stránku navštíví 2x v 1s, pokud by to nedal někde do cyklu, atd... No ale dodal jsem to tam.
Re: Počítadlo přístupů
Napsal: čtv 25. čer 2009, 23:03
od OndraSter
No spíš mi šlo o to, že tam počítáš datum a nikoli datum a čas, leda jestli to máš v DB tak to pak jo.
Tzn v DB to má vybrat záznamy kde:
datum>25.6.2008
což není žádný (nikdo to v budoucnosti nenavštívil) a tudíž to započítá - pokud v DB však máš i časy tak to pak samozřejmě funguje, ale to se už těžko z kódu odhaduje.
Re: Počítadlo přístupů
Napsal: pát 26. čer 2009, 13:09
od arxeiss
Já mám v db ty sloupce datetime takže pokud to není žádný jak píšeš, tak to tam vloží aktuální datum, tj i s časem, a pak to kontroluje jestli je už tam od půlnoci byl
Re: Počítadlo přístupů
Napsal: pát 26. čer 2009, 13:18
od OndraSter
Aha, to že to je datetime se z kódu už vyčíst nedalo, proto mi to bylo divné, že to funguje, ač by teoreticky nemělo. Potom OK, mělo by to být OK.
Re: Počítadlo přístupů
Napsal: pát 26. čer 2009, 13:33
od arxeiss
jj sorry, mi to nedošlo že by tam teoreticky mohlo být jenom datum. Jsem půodně tam chtěl dát jenom datum, ale pak jsem si říkal že bude lepší když tam budu mít i čas, pak se dají dělat i statistiky.
Jěště jednou díky