使用时间戳显示活动用户

时间:2013-09-21 22:51:45

标签: javascript php mysql

我想在系统中显示活跃用户。

然后每隔5分钟创建一个用当前日期更新数据库的函数。

最后,我必须删除日期小于当前日期+ 10分钟的记录

DELETE FROM `user_online` WHERE data < (NOW() + INTERVAL 10 MINUTE)

<?php
  @session_start();
  $session = session_id();
  $time = date('Y-m-d h:i:s');

  $tbl_name = "user_online"; // Table name

  $result = mysql_query("SELECT * FROM $tbl_name WHERE session='$session'");

  $count=mysql_num_rows($result);

  if($count == 0){

    mysql_query("INSERT INTO $tbl_name(session, data) VALUES ('$session', '$time')");

  }else { 

    mysql_query("UPDATE $tbl_name SET data='$time' WHERE session = '$session'");

  }

// if over 10 minute, delete session

$result4 = mysql_query("DELETE FROM $tbl_name WHERE data < (NOW() + INTERVAL 10 MINUTE)");
// Open multiple browser page for result

使用Javascript:

<script type="text/javascript" >
  function update(){
    <?php include('online.php'); ?>
  }
  setInterval("update()",10000);
</script>

脚本正在删除所有记录,出了什么问题?

2 个答案:

答案 0 :(得分:3)

错误的标志

DELETE FROM `user_online` WHERE data < (NOW() - INTERVAL 10 MINUTE)

NOW() + INTERVAL 10 MINUTE从现在起十分钟后,您的所有记录都比此更早。

答案 1 :(得分:0)

您正在将记录放入数据库,然后告诉它:“从现在起10分钟后删除所有内容”......但您输入的内容符合该标准。如果我在12:20输入记录,那么它将<12:30并将被删除。