显示网页上的用户数量

时间:2013-09-22 09:04:22

标签: php mysql

我正在尝试编写一个PHP脚本,用于计算过去10分钟内访问过该页面的用户数量。这是我的剧本:

function getOnlineUsers($database, $main_connection){

    $database;

    $visitor_id = session_id();

    $timestamp = time();
    $timeOut = $timestamp - 6000;

    mysql_query("INSERT INTO online (m_time, ip) VALUES ('$timestamp', '$visitor_id')", $main_connection);
    mysql_query("DELETE FROM online WHERE m_time < $timeOut");

    $result = mysql_query("SELECT * FROM online");
    mysql_fetch_assoc($result);
    if(!$result){
        $online_users = 1;
    }else{
        $online_users = mysql_num_rows($result);
    }

    return $online_users+1;
}

问题是没有任何内容插入数据库,数据库仍为空,因此计数为空。有人可以帮助我吗?

3 个答案:

答案 0 :(得分:2)

首先,更好地使用PDO或MySQLi。在您的数据库中,'m_time'列必须是整数类型,并将$timestamp值作为数字传递,而不是在引号内传递。

"INSERT INTO online (m_time, ip) VALUES ($timestamp, '$visitor_id')"

答案 1 :(得分:1)

1)将'$ timestamp'更改为NOW(),mysql无法理解php的time()函数(假设m_time是一个datetime字段)。

即:

INSERT INTO online (m_time, ip) 
 VALUES ( NOW(), '$visitor_id')

2)您的删除遇到同样的问题

3)您可以使用更聪明的东西在过去10分钟内吸引用户,尝试以下方法:

select count(*) AS OnlineUserCount 
 from online 
WHERE 
 m_time > DATE_SUB( NOW(), INTERVAL 10 MINUTE ) ;

答案 2 :(得分:-1)

你的代码看起来很好..我建议你做的是在运行时回显查询并应对并粘贴它并直接从phpmyadmin运行它并检查它是否给你任何错误,如果成功插入行我建议你用数据库检查你的连接文件。

并尝试CoursesWeb

的建议