Een tabel aanmaken ("stats" bijvoorbeeld) waarin bij het inloggen word gezet dat je hebt ingelogd. Daarna mysql_num_rows op los laten, en de uitkomt echo'en.
<?php
// Database login hidden.
$s_aantal = mysql_query("Select Count(id) From online Where ip = '".$_SERVER['REMOTE_ADDR']."'") or die(mysql_error());
if (!mysql_result($s_aantal, 0))
mysql_query("Insert Into online (id, ip, tijd) Values ('NULL', '".$_SERVER['REMOTE_ADDR']."', '".time()."')") or die(mysql_error());
else
{
mysql_query("Update online Set tijd = '".time()."' Where ip = '".$_SERVER['REMOTE_ADDR']."'") or die(mysql_error());
mysql_query("Delete From online Where tijd < ".time()." - 60*5") or die(mysql_error());
}
$s_aantal = mysql_query("Select Count(id) From online");
$aantal = mysql_result($s_aantal, 0);
if ($aantal > 1 || $aantal == 0)
echo "Er zijn <b>".$aantal."</b> bezoekers actief op deze site!";
else
echo "Er is <b>1</b> bezoeker actief op deze site!";
?>
Ten eerste ga je niet met een select kijken of een record al bestaat om te bepalen of je moet inserten of moet updaten.
De insert is ook nog eens fout. Indien id een auto_increment / sequence is dan neem je die uiteraard niet op in je insert query.
En om dan aan het id een string 'NULL' door te geven is helemaal van de zotte.
En uitaard gebruik je ook geen timestamp maar gebruik je SQL's NOW() (type DATETIME)
Voor de rest zegt een IP-adres totaal niets over het aantal unieke personen / bezoekers.
En waarom je nu data gaat verwijderen is mij en raadsel
Overige opmerking:
or die() is kerkhof stategie, pas fatsoenlijke foutafhandeling toe
er bestaat ook nog zoiets als SQL aliasen dan kan je eenvoudigerwijs een zinvolle naam geven aan een SUM/COUNT/AVG/MIN/MAX