回声在过去5分钟内有多少用户在线

时间:2015-07-11 22:08:13

标签: php mysql

所以,我想知道如何从mysql数据库中获取最后一批在线用户的数量? 在MySQL中,“lastonline”是2015-07-12 12:00:13am 所以我需要在lastonline下获得2015-07-12 12:05:00am的用户数量 我试过了:

$currenttime = date("Y-m-d h:i:sa");
    $resulttt = mysql_query("select lastonline from users where lastonline <= '$currenttime'");
$users = mysql_num_rows($resulttt);
echo "$users";

我得到0,但是当我从“<=”更改为“=>”时,我得到了40(我的所有用户数) 如何计算5分钟以内的在线用户数? 感谢您的帮助,非常感谢。

还试过:SELECT lastonline FROM users WHERE lastonline > now() - INTERVAL 5 MINUTE 刚得到所有用户的数量

1 个答案:

答案 0 :(得分:0)

最好的方法是使用MySQL。此查询允许您选择从现在到5分钟之前的所有行:

SELECT lastonline FROM users WHERE lastonline > now() - INTERVAL 5 MINUTE

SELECT lastonline FROM users WHERE lastonline > DATE_SUB(now(), INTERVAL 5 MINUTE)

但是,可以使用PHP代替。代码如下:

$5_minutes_ago = date("Y-m-d H:i:s",mktime(date("H"),(date("i")-5),date("s"),date("m"),date("d"),date("Y")));
$resulttt = mysql_query("SELECT lastonline FROM users WHERE lastonline > ". $5_minutes_ago) or die(mysql_error());
$users = mysql_num_rows($resulttt);
echo $users;

最后一点:mysql_*被官方弃用。我强烈建议您将代码更新为MySQLiPDO。额外的好处是您可以使用预备语句,这将保护您免受SQL注入。