SQLite does not support certain usage of COUNT(DISTINCT *), thus we must emulate it

git-svn-id: file:///svn/phpbb/trunk@6090 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
David M 2006-06-17 18:05:25 +00:00
parent 1c02e24333
commit 4b1af3e32c

View file

@ -87,10 +87,24 @@ $guest_counter = 0;
// Get number of online guests (if we do not display them) // Get number of online guests (if we do not display them)
if (!$show_guests) if (!$show_guests)
{ {
$sql = 'SELECT COUNT(DISTINCT session_ip) as num_guests switch (SQL_LAYER)
FROM ' . SESSIONS_TABLE . ' {
WHERE session_user_id = ' . ANONYMOUS . ' case 'sqlite':
AND session_time >= ' . (time() - ($config['load_online_time'] * 60)); $sql = 'SELECT COUNT(session_ip) as num_guests
FROM (
SELECT DISTINCT session_ip
FROM ' . SESSIONS_TABLE . '
WHERE session_user_id = ' . ANONYMOUS . '
AND session_time >= ' . (time() - ($config['load_online_time'] * 60)) .
')';
break;
default:
$sql = 'SELECT COUNT(DISTINCT session_ip) as num_guests
FROM ' . SESSIONS_TABLE . '
WHERE session_user_id = ' . ANONYMOUS . '
AND session_time >= ' . (time() - ($config['load_online_time'] * 60));
}
$result = $db->sql_query($sql); $result = $db->sql_query($sql);
$guest_counter = (int) $db->sql_fetchfield('num_guests'); $guest_counter = (int) $db->sql_fetchfield('num_guests');
$db->sql_freeresult($result); $db->sql_freeresult($result);