2012-06-01 5 views
1

pyrocms에 default_ci_sessions 테이블이 있습니다. 이 테이블을 사용하여이 작업을 완료해야한다고 생각합니다. 이 테이블의 필드는 다음과 같습니다 내 로컬 호스트에서 개발하고pyrocms에서 온라인 사용자 수를 계산하는 방법은 무엇입니까?

1 70bb123786d01c0be696e98cb1f6622e 
2 0.0.0.0 
3 Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19 
4 1336371726 
5 a:7:{s:9:"user_data";s:0:"";s:8:"username";s:5:"admin";s:5:"email";s:22:"[email protected]";s:2:"id";s:1:"1";s:7:"user_id";s:1:"1";s:8:"group_id";s:1:"1";s:5:"group";s:5:"admin";} 

등록 한 (위) 사용자가 :

1 session_id varchar(40) 
2 ip_address varchar(16) 
3 user_agent varchar(120) 
4 last_activity int(10) 
5 user_data text  

샘플 행입니다. 내가 테이블의 내용을보기 전에 생각한 것은 당신이 알고 있기 때문에 테이블에 하나의 레코드가 있어야한다는 것입니다. :) 하지만 게스트 사용자 session_ids와 내 사용자 (admin)의 10 개의 행을 포함하여 이미 120 개의 레코드가 있습니다. 나는이 last_activity 필드로 무엇을 할 수 있는지 알아낼 수있는 유일한 방법이라고 생각합니다.

andftopic 질문 : 왜 거기에 너무 많은 세션이 있습니까? 활성 세션이 아닌가? 그래서 각 사용자 이름별로 그룹화하고 가장 큰 번호를 선택할 수 있습니까? last_activity?

답변

1

마지막 활동이 24 분 (브라우저 기본값이 세션을 보유 할 시간 인 24 분)으로 로그인 한 사용자 (로그 아웃에 대한 정보가 없으므로)를 고려할 수 있습니다.

그래서 귀하의 질의에 당신은 ...

default_ci_sessions where last_activity >= NOW() - INTERVAL '24' MINUTES에서 레코드를 계산합니다
관련 문제