2013-09-21 4 views
-1

시스템에 활성 사용자를 표시하고 싶습니다.타임 스탬프를 사용하여 활성 사용자보기

5 분마다 데이터베이스를 현재 날짜로 업데이트하는 함수를 만들었습니다. 나는 날짜가

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 

자바 스크립트 + 십분

현재 날짜보다 작은 경우 기록을 삭제해야 결국

:

<script type="text/javascript" > 
    function update(){ 
    <?php include('online.php'); ?> 
    } 
    setInterval("update()",10000); 
</script> 
스크립트는 모든 레코드를 삭제한다

, 무슨 잘못 ?

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

NOW() + INTERVAL 10 MINUTE

+2

'(NOW() + INTERVAL 10 MINUTE)'은 (는) 향후 10 분입니다. 현재 시간으로 설정된 타임 스탬프는 절대로 그 값을 얻을 수 없습니다. –

답변

3

잘못된 기호 지금부터 10 분이며, 모든 기록은 그보다 오래된.

+0

이제 더 많은 레코드를 삽입 할 필요가 없습니다. 지금은 모든 레코드를 삭제하는 것 같습니다. – Offboard

+0

@user하지만 앞으로 10 분의 타임 스탬프가있는 레코드를 제외한 모든 레코드를 삭제할 것을 명령하기 때문에 모든 레코드가 삭제됩니다. 그건 이해가 안돼, 그렇지? –

+0

게시 한 전체 코드를 넣습니다. – Offboard

0

당신은 데이터베이스에 레코드를 넣은 다음 "이제부터 10 분 이내에 모든 것을 지 웁니다."라고 말하면서 ... 그러나 방금 입력 한 내용은 그 기준에 부합합니다. 12:20에 기록을 넣으면 < 12:30이며 삭제됩니다.

관련 문제