Názory ke článku Počítadlo on-line čtenářů vaší stránky
17. 12. 2005
date("y-m-d h:i:s");
by mel byt
date("y-m-d H:i:s");
(velke H) den ma 24 hod.
jinak po 13 hod. v tabulce zustanou vsichni co byli 12:59:30 - 12:59:59
15. 2. 2006
v řádku: $tolerance=date("y-m-d h:i:s",time()+30); // 30sekund
by mělo býs spíše: $tolerance=date("y-m-d h:i:s",time()-30); // 30sekund
jinak to maže vlastně hned zapsané záznamy protože ty jsou s menším datem jak tolerance
tady: $online = mysql_num_rows(mysql_query("select from online");//spocitani online lidi
chybí závorka na konci ještě jedna
a dělal jsem ještě jednu změnu ale nemohu ji najít.
A co když bude na stránkách víc uživatelů se stejnou IP (připojení přes proxy nebo jak to je, moc tomu nerozumím)? Nechtělo by to použít třeba ještě cookies nebo sessions?
toto je moja prva prakticka skusenost v php a sql :-))
dufam ze sa dostanem aj dalej :-))
no ta chyba bola asi v
if ($result==0): a nie if (mysql_num_rows($result)==0):
ale mam este jeden problem nexce mi to zapisat IP
stlpec kdo mam prazdny..... nefiete mi poradit?
možná bych nahradil tohle
<pre>$online = mysql_num_rows(mysql_query("select from online"); </pre>
timhle
<pre> $online_mysql=mysql_query(select count(*) from online);
$row_online=mysql_fetch_array($online_mysql);
$online=$row_online[0];
</pre>
podle mejch zkušeností to míň zatěžuje databázi ;p
jinak je to slušně napsaný :)
jups.. se mi tam vloudila chybička :-[
nahradit to timhle:
<pre>
$online_mysql=mysql_query("select count(*) from online");
$row_online=mysql_fetch_array($online_mysql);
$online=$row_online[0];
</pre>
už ve verzi MySQL 3 existovala funkce REPLACE, proč ji nepoužít?
@MySQL_Query("REPLACE INTO `online`(kdo,cas) VALUES('$kdo','$cas')");
btw $kdo je opravdu pěkný název proměnné, já používám $IP
jinak v sQL taky existují funkce pro čas např. NOW()