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

Php 回显过去5分钟内有多少用户在线,php,mysql,Php,Mysql,所以,我想知道如何从mysql数据库中获取最后的在线用户数? 在MySQL中,lastonline是2015-07-12 12:00:13am 因此,我需要在2015-07-12 12:05:00am 我试过: $currenttime=日期(“Y-m-d h:i:sa”); $resulttt=mysql\u query(“从lastonline用户中选择lastonline执行此操作的最佳方法是仅使用mysql。此查询允许您选择从现在到5分钟前的所有行: 从用户选择lastonline>no

所以,我想知道如何从mysql数据库中获取最后的在线用户数? 在MySQL中,
lastonline
2015-07-12 12:00:13am
因此,我需要在
2015-07-12 12:05:00am
我试过:

$currenttime=日期(“Y-m-d h:i:sa”);

$resulttt=mysql\u query(“从lastonline用户中选择lastonline执行此操作的最佳方法是仅使用mysql。此查询允许您选择从现在到5分钟前的所有行:


从用户选择lastonline>now()-间隔5分钟
或

从用户中选择lastonline>DATE\u SUB(现在(),间隔5分钟)

但是,也可以使用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.*
已被正式弃用。我强烈建议将您的代码更新到或。另外的好处是,您可以使用准备好的语句,这将保护您免受SQL注入。

从lastonline>now()的用户中选择lastonline-间隔5分钟
嘿,谢谢你的评论,上面写着40,但不应该是40,过去5分钟只有一个用户在线如果你使用我刚才给你的查询,它会选择时间在现在到5分钟之前的行确保
lastonline
是一个日期时间列,而不是一个varcharI,恐怕我们无法进一步帮助你t不查看您的代码或数据库。由于查询正常,一定是其他原因导致了问题。您也可以执行
$5_minutes\u ago=date('Y-m-d H:i:s',strotime('-5 min');
(以保持其格式)您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解第1行“08:55:26”附近要使用的正确语法
$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;