First this is related question of PHP: Online Offline Status But as my approch is little different and issue too so I thought new question would be better.
Now I have added one column to qa_users table called "online" which insert/update logging time and keep update upon user interaction (i am not sure is it right or not)
Now it is displaying user online as soon as they logged in but issue is after logged out they are keep display status as online and never go offline status.
I think something wrong with my time comparison conditional code but what I don't know.
Please find below code what I am using.
$loggedtime = date('Y-m-d h:i:s', time()-300); // 5 minutes
$query = 'SELECT userid, handle, online FROM ^users ORDER BY userid ASC';
$result = qa_db_query_sub($query);
while($ids = mysql_fetch_array($result)){
$online = $ids['online'];
$userid = qa_get_logged_in_userid();
if(qa_is_logged_in()){
$update = 'UPDATE ^users SET online = NOW() WHERE userid = '.$userid.'';
qa_db_query_sub($update);
}
$time = $ids['online'];
if ($time >= $loggedtime){ // i have tried with $loggedtime > $time too
echo '<li>'.$ids['handle'].' online</li>';
} else {
echo '<li>'.$ids['handle'].' offline</li>';
}
}