所以,我想知道如何从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
刚得到所有用户的数量
答案 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_*
被官方弃用。我强烈建议您将代码更新为MySQLi或PDO。额外的好处是您可以使用预备语句,这将保护您免受SQL注入。