bij iedere klik die iemand maakt sla je de huidige tijd op, dan maak je bij je online scriptje een query die alle gebruikers ophaalt die in bijv. de laatste 5 minuten nog geklikt hebben, en die geef je weer.
Godlord, snap niet waarom je dan toch een while gebruikt je zegt het zelf je hebt maar één record/veld nodig. Je gebruikt dan juist geen while. Wil je de hoogste ID -> MAX() óf wil je aantal records -> COUNT (en dan mbv mysql_result() waarde ophalen).
Je kunt het op twee manieren doen, of zoals je nu hebt je slaat de tijd van inloggen op en set bij het inloggen, 'online' op 1. Logt iemand uit zet je hem standaard op 0. Maar op elke pagina update je de tijd en je zet diegene op 0 waar het veld tijd meer als 5 min geleden is. Andere oplossing (die ik zelf ook prefereer), maak een extra tabel online aan waar je id (let op: geen member id!), ip, m_id en tijd in op slaat.
<?php
/**
* Aantal online
*/
$result = mysql_query("SELECT COUNT(1) FROM online") or die (mysql_error());
$total_online = mysql_result($result, 0);
echo ($total_online == 1 ? 'Één persoon online' : 'Er zijn '.$total_online.' personen online';
/**
* Delete online (elke pagina)
*/
$time = time() - 300; // 5 min
mysql_unbuffered_query("DELETE FROM online WHERE tijd < ".$time) or die (mysql_error());
/**
* Insert online (inloggen)
*/
mysql_unbuffered_query("INSERT INTO online (id, ip, m_id, tijd) VALUES (NULL, '".$user_ip."', ".$user_id.", NOW() + 0)") or die (mysql_error());
/**
* Update online (elke pagina)
*/
mysql_unbuffered_query("UPDATE online SET tijd = NOW() + 0 WHERE ip='".$user_ip."' AND m_id=".$user_id) or die (mysql_error());
Zorg dat $user_id wel een integer is, anders moet je er even (enkele) quotes om zetten. Fouten voorbehouden, gauw hier getypt.
Waarom NOW() + 0? Zodat het een integer wordt en je niet de string-format van NOW() krijgt. (Er voor zorgen dat hij in een numeric context wordt gebruikt dus)
CREATE TABLE bezonline (
id int(11) NOT NULL auto_increment,
ip varchar(50) NOT NULL default '',
tijd varchar(50) NOT NULL default '',
PRIMARY KEY (id)
)