使用PHP计算在线用户数量

时间:2016-06-08 06:26:09

标签: php mysql count rows

我正在尝试计算在10分钟内我的网站上有多少用户在线并显示它,但我的代码遇到了一些问题。

//Count online users
//Data on DB: 2016-06-08 03:15:21

    $onlinesql = $odb -> prepare("SELECT `users`.`lastactivity`  count(*) FROM `users` WHERE `lastactivity` >= DATE_SUB(NOW(), INTERVAL 10 MINUTE");
    $onlinesql -> execute(array(":id" => `lastactivity`));
    $rowonline = $onlinesql -> fetch(); 

    echo $rowonline;

它没有返回在线用户的数量,我怎样才能让它正常工作?

3 个答案:

答案 0 :(得分:0)

SELECT count(*) FROM `users` WHERE `lastactivity` >= DATE_SUB(NOW(), INTERVAL 10 MINUTE)

无需使用count(id)或count(lastactivity),只需使用count(*),因为这是最快的方式

答案 1 :(得分:0)

您可能想要重新访问SQL。这是一个例子:

    <?php    
        $sql        = "SELECT COUNT(U.*) FROM `users` U WHERE u.lastactivity >= DATE_SUB( NOW(), INTERVAL 10 MINUTE)";
        $onlineSQL  = $odb ->prepare($sql);
        $onlineSQL  -> execute();
        $numOnline  = $onlineSQL->fetch();

        var_dump($numOnline);

答案 2 :(得分:0)

您可以使用ajax。 在users表中创建一个枚举字段让我们调用它(状态) &#39; 0&#39; = GT;离线和 &#39; 1&#39; = GT;线上 并且使用两个setInterval函数来每2分钟更新一次用户状态,例如使用ajax,另一个用于获取状态为&#39; 1&#39;来自带有ajax的数据库。