2012-01-24 3 views
0

사용자가 사이트에 머문 시간을 계산하는 기본적인 방법을 시도하고 있습니다. PHP 스크립트에 hearbeats javascript에서 간단한 폴링 스크립트가 있습니다.지금 및 마지막 시간 스탬프를 계산하고 타임 스탬프를 업데이트하려고 시도합니다.

  • 이제 마지막 updated_on 필드 (날짜 시간 필드 인) 사이의 차이를 계산하고 단지 정수이다 (현재 active_time 필드에 추가 : 나는 다음과 같은 하나의 SQL에서 문을 할 노력하고있어)
  • 그런 다음 레코드가

업데이트되었습니다 이것은 내가 사용하려고 해요 SQL 것을 반영하기 위해 updated_on를 업데이트;

UPDATE login_log 
SET active_time = active_time + (SELECT TIME_TO_SEC(TIMEDIFF(NOW(), updated_on))), 
updated_on = NOW() 
WHERE user_id = ? && session_id = ? AND status = 'active' 

질문 1 - 나는 경쟁 조건이 updated_on를 업데이트하고 여전히 차이를 CALC하는 데 사용 할 수 있으리라 믿고있어,하지만 누군가가 작동하지 않습니다 확인하거나 말해 줄 수?

질문 2 - 나는 abit 후에 active_time이 꺼져 있기 때문에 그것이 20 분 밖에되지 않았으므로 몇 시간 동안 진행 되었기 때문에 이상한 행동을해야합니다. 아니 정말이 후 질문의 범위,하지만 누군가가 잘못을 신속 것을 본다면, 내가 알고 감사하겠습니다 ....

TIA

답변

0

이 이것에 대해 갈 길을 잘못처럼 보인다. 두 필드가있는 createdupdated_on을 단순화하고 있는데, 이는 last_updated입니다. 사이트의 현재 시간을 계산하려면 현재 시간에서 생성 된 값을 빼면됩니다. 아마도 당신은 영구 기록을 원할 것입니다. 이는 사용자의 요청이 표시 될 때마다 (하트 비트 포함) 업데이트되는 last_updated 필드에서 발생합니다. 현재 시간으로 간단히 업데이트하면됩니다. createdlast_updated의 차이는 사이트에 머문 시간을 영구적으로 기록합니다.

관련 문제