Beste users, wij zijn bezig met het maken van een web-based applicatie in php5, het is een applicatie waarbij meerdere mensen aan een case moeten werken. alles gaat goed tot dat we nu bij het punt komen dat er een overzicht moet zijn welke users er online zijn. Hoe gaan we dit aanpakken? Het moet dus weergeven WIE er online zijn, niet persee hoeveel. mvg oink
ik heb in mijn database een veld staan Laatstonline (DATETIME) en deze update ik op elke pagina waar de members komen. (wel met wat controle etc..)
dan om te kijken wie online is doe ik dit:
<?php
$sql = mysql_query("SELECT Naam FROM members WHERE UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(Laatstonline) < 300 ORDER BY Naam") or die(mysql_error());
?>
Zo krijg ik alle members die de laatste 5 minuten wat gedaaan hebbe,n op de site.
ik heb de tabel genaamd members en ik doe dus op elke pagina
<?php
if(isset($_SESSION['Naam']))
{
$updat = mysql_query("UPDATE members SET Laatstonline = NOW() WHERE Naam = '".mysql_real_escape_string($_SESSION['Naam'])."'") or die(mysql_error());
}
?>
mysql_query("SELECT id, naam, datum_aangemeld,laatst_online, CASE WHEN UNIX_TIMESTAMP(now())-UNIX_TIMESTAMP(online) > 180 THEN 'nee' ELSE 'ja' END AS l_online FROM leden WHERE geactiveerd = 'ja'") or trigger_error(mysql_error());
Maar dan maak je van een datetime eerst een unix_timestamp. Terwijl je het ook gewoon met date_sub en interval kunt doen. Lijkt het laatste me toch makkelijker. Anders kan je net zo goed de data gelijk in unix_timestamp opslaan.