2013-09-21 3 views
-1

Я хочу показать активных пользователей в системе.Показать активных пользователей с помощью timestamp

Затем каждые 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

'(NOW() + INTERVAL 10 MINUTE)' 10 минут в будущем. Временная метка, которая устанавливается на текущее время, никогда не сможет получить это значение, не так ли? –

ответ

3

Неправильный знак

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

NOW() + INTERVAL 10 MINUTE находится в десяти минутах от теперь, и все ваши записи старше, чем это.

+0

проблема теперь не вставить больше записей. Похоже, что теперь удаляются все записи – Offboard

+0

@user, но он удаляет все записи, потому что вы говорите ему, чтобы удалить все записи, за исключением тех, у которых есть отметка времени 10 минут в будущем. Это не имеет смысла, не так ли? –

+0

Я положил текущий код в целом, который вы разместили – Offboard

0

Вы помещаете запись в базу данных, а затем сообщаете ей: «удалите все МЕНЬШЕ, чем через 10 минут» ... Но то, что вы только что ввели, соответствует этим критериям. Если я поставил запись в 12:20, то это < 12:30 и будет удалено.

Смежные вопросы