From 0ff22ee594a804c0e9eb05fdd1f79636298af779 Mon Sep 17 00:00:00 2001 From: Bart van Bragt Date: Fri, 11 Jan 2002 14:36:34 +0000 Subject: [PATCH] Dropped 'GROUP BY' from whosonline query for compatibility with non-MySQL DB's git-svn-id: file:///svn/phpbb/trunk@1845 89ea8834-ac86-4346-8a33-228a782c2dd0 --- phpBB/includes/page_header.php | 38 ++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/phpBB/includes/page_header.php b/phpBB/includes/page_header.php index e05930804e..fb1bd537ab 100644 --- a/phpBB/includes/page_header.php +++ b/phpBB/includes/page_header.php @@ -89,12 +89,11 @@ $s_last_visit = ( $userdata['session_logged_in'] ) ? create_date($board_config[' // Get basic (usernames + totals) online // situation // -$sql = "SELECT u.username, u.user_id, u.user_allow_viewonline, s.session_logged_in, s.session_ip, count(*) as online_count +$sql = "SELECT u.username, u.user_id, u.user_allow_viewonline, s.session_logged_in, s.session_ip FROM ".USERS_TABLE." u, ".SESSIONS_TABLE." s WHERE u.user_id = s.session_user_id AND ( s.session_time >= ".( time() - 300 ) . " OR u.user_session_time >= " . ( time() - 300 ) . " ) - GROUP BY u.user_id ORDER BY u.username ASC"; $result = $db->sql_query($sql); if(!$result) @@ -107,31 +106,38 @@ $userlist_visible = array(); $logged_visible_online = 0; $logged_hidden_online = 0; $guests_online = 0; +$prev_user_id = 0; while( $row = $db->sql_fetchrow($result) ) { + // User is logged in and therefor not a guest if( $row['session_logged_in'] ) { - if( $row['user_allow_viewonline'] ) + // Skip multiple sessions for one user + if( $row['user_id'] != $prev_user_id ) { - $user_online_link = "" . $row['username'] . ""; - $logged_visible_online++; - } - else - { - $user_online_link = "" . $row['username'] . ""; - $logged_hidden_online++; - } - - if( $row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN ) - { - $online_userlist .= ($online_userlist != "") ? ", " . $user_online_link : $user_online_link; + if( $row['user_allow_viewonline'] ) + { + $user_online_link = "" . $row['username'] . ""; + $logged_visible_online++; + } + else + { + $user_online_link = "" . $row['username'] . ""; + $logged_hidden_online++; + } + + if( $row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN ) + { + $online_userlist .= ($online_userlist != "") ? ", " . $user_online_link : $user_online_link; + } } } else { - $guests_online += $row['online_count']; + $guests_online++; } + $prev_user_id = $row['user_id']; } $online_userlist = $lang['Registered_users'] . " " . $online_userlist;