diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php index 40225a363b..0965a585b8 100644 --- a/phpBB/includes/functions.php +++ b/phpBB/includes/functions.php @@ -3005,11 +3005,25 @@ function page_header($page_title = '', $display_online_list = true) // Get number of online guests if (!$config['load_online_guests']) { - $sql = 'SELECT COUNT(DISTINCT s.session_ip) as num_guests - FROM ' . SESSIONS_TABLE . ' s - WHERE s.session_user_id = ' . ANONYMOUS . ' - AND s.session_time >= ' . (time() - ($config['load_online_time'] * 60)) . - $reading_sql; + if ($db->sql_layer === 'sqlite') + { + $sql = 'SELECT COUNT(session_ip) as num_guests + FROM ( + SELECT DISTINCT s.session_ip + FROM ' . SESSIONS_TABLE . ' s + WHERE s.session_user_id = ' . ANONYMOUS . ' + AND s.session_time >= ' . (time() - ($config['load_online_time'] * 60)) . + $reading_sql . + ')'; + } + else + { + $sql = 'SELECT COUNT(DISTINCT s.session_ip) as num_guests + FROM ' . SESSIONS_TABLE . ' s + WHERE s.session_user_id = ' . ANONYMOUS . ' + AND s.session_time >= ' . (time() - ($config['load_online_time'] * 60)) . + $reading_sql; + } $result = $db->sql_query($sql); $guests_online = (int) $db->sql_fetchfield('num_guests'); $db->sql_freeresult($result);