多个用户的在线状态

时间:2014-03-21 23:43:25

标签: php mysql database mysqli

我能够在线状态,但仅适用于一个用户。当我登录时,它会在users.php上显示所有用户,即使他们处于离线状态。 这是状态代码:

session_start();
include_once 'db_connect.php' ;
if(isset($_SESSION['users'])) {
$setLogged= mysql_query("UPDATE `users` SET `lastlogin` = '$last' WHERE `id` = '".$_SESSION['users']."'") or die(mysql_error());
}
$last = strtotime(date('Y-m-d H:s'));
$loggedtime = time() - 300; // 5 minutes
    if($last > $loggedtime) { 
       echo '<font color="green" size="3px">online</font>';
    } else {
       echo '<font color="red" size="3px">offline</font>';
}
?>

我需要有关如何使其适用于多个用户的帮助。 谢谢。 ;)

1 个答案:

答案 0 :(得分:1)

你必须使用这样的东西:

$query=mysql_query("SELECT id FROM users WHERE last_login>NOW()-INTERVAL 30 MIN");
while($array=mysql_fetch_assoc($query)){
      //Do something with the id's or the info you get for user who have there last login
      //in the last 30mins
}

正如@Crisp在上面的评论中所说,你的last_login查询也应该更新,你可以像这样使用mysql now()函数:

$setLogged= mysql_query("UPDATE `users` SET `lastlogin` = NOW() WHERE `id` = '".$_SESSION['users']."'") or die(mysql_error());

请注意,您必须停止使用mysql_ *,因为这些功能已弃用,请先使用PDOmysqli