我用这个代码与最新的时间来更新用户数据库,当用户处于联机:选择在线用户数据库与MySQL命令
$postTime = $user_array['last_online'];
if ($postTime == ""){
$minutes = 11;
} else {
$now = time();
$seconds = $now - $postTime; // $seconds now contains seconds since post time
$minutes = ceil($seconds/60); // minutes since post time
//$hours = ceil($minutes/60); //hours
}
if ($minutes > 10) {
$con = db_connect2();
$sql = "UPDATE tbl
SET last_online='".strtotime("now")."'
WHERE userid='" .mysql_real_escape_string($_SESSION['userid']). "'";
mysql_select_db('db',$con);
$result = mysql_query($sql,$con);
}
我不知道如果多数民众赞成的最佳方式做到这一点,但我认为它有效。现在我想要使用mysql命令获取在过去10分钟内处于活动状态的所有用户。这可能吗。像
$time = time() - 600;
$online = $conn->query("select username
from tbl
where last_online < $time");
你的代码有什么问题? – 2010-11-06 07:10:45
它在10分钟前获得了在线用户,这不是我们想要的结果(我们希望用户在线时间不到10分钟)。看到我的答案。 – defines 2010-11-10 01:25:47
对于'$ online'查询,Dustin Fineout在下面指出了'<' ->'> ='。也就是说,不是'... last_online <$ time ...'使用'... last_online> = $ time ...'。 – 2010-11-11 08:06:04