Для подсчета количества пользователей CHC-forum-а находящихся в онлайне делал такой запрос:
Код:
$query = 'SELECT DISTINCT fe_sessions.ses_userid, fe_users.name, fe_users.username, fe_users.uid FROM fe_users, fe_sessions WHERE fe_users.pid = '.$pid.' AND fe_users.uid = fe_sessions.ses_userid AND fe_users.is_online AND fe_sessions.ses_tstamp>(UNIX_TIMESTAMP()-600)';
Решено, конечно, в лоб, но работает устойчиво. Показывает залогинившихся пользователей которые в течение 600 последних секунд проявили активность (открыли любую страницу сайта) и не разлогинились явно.
См.
http://www.fcneman.com/forum.html