- pretty sweet speed increase

git-svn-id: file:///svn/phpbb/trunk@7097 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
David M 2007-02-28 22:14:23 +00:00
parent d591e0bf44
commit 4e423d9907

View file

@ -871,7 +871,7 @@ switch ($mode)
// Additional sorting options for user search ... if search is enabled, if not
// then only admins can make use of this (for ACP functionality)
$sql_select = $sql_from = $sql_where = $order_by = '';
$sql_select = $sql_where_data = $sql_from = $sql_where = $order_by = '';
$form = request_var('form', '');
$field = request_var('field', '');
@ -1112,6 +1112,7 @@ switch ($mode)
$order_by = 'ug.group_leader DESC, ';
$sql_where .= " AND ug.user_pending = 0 AND u.user_id = ug.user_id AND ug.group_id = $group_id";
$sql_where_data = ' AND u.user_id = ug.user_id';
}
// Sorting and order
@ -1224,10 +1225,29 @@ switch ($mode)
);
}
// Get us some users :D
$sql = "SELECT u.user_id
FROM " . USERS_TABLE . " u
$sql_from
WHERE u.user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ")
$sql_where";
$result = $db->sql_query_limit($sql, $config['topics_per_page'], $start);
$user_list = array();
while ($row = $db->sql_fetchrow($result))
{
$user_list[] = (int) $row['user_id'];
}
$db->sql_freeresult($result);
// So, did we get any users?
if (sizeof($user_list))
{
// Session time?! Session time...
$sql = 'SELECT session_user_id, MAX(session_time) AS session_time
FROM ' . SESSIONS_TABLE . '
WHERE session_time >= ' . (time() - $config['session_length']) . '
AND session_user_id <> ' . ANONYMOUS . '
AND ' . $db->sql_in_set('session_user_id', $user_list) . '
GROUP BY session_user_id';
$result = $db->sql_query($sql);
@ -1243,10 +1263,10 @@ switch ($mode)
$sql_select
FROM " . USERS_TABLE . " u
$sql_from
WHERE u.user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ")
$sql_where
WHERE " . $db->sql_in_set('u.user_id', $user_list) . "
$sql_where_data
ORDER BY $order_by";
$result = $db->sql_query_limit($sql, $config['topics_per_page'], $start);
$result = $db->sql_query($sql);
$id_cache = array();
while ($row = $db->sql_fetchrow($result))
@ -1265,7 +1285,7 @@ switch ($mode)
$cp = new custom_profile();
// Grab all profile fields from users in id cache for later use - similar to the poster cache
$profile_fields_cache = $cp->generate_profile_fields_template('grab', array_keys($id_cache));
$profile_fields_cache = $cp->generate_profile_fields_template('grab', $user_list);
}
// If we sort by last active date we need to adjust the id cache due to user_lastvisit not being the last active date...
@ -1311,6 +1331,7 @@ switch ($mode)
$i++;
unset($id_cache[$user_id]);
}
}
// Generate page
$template->assign_vars(array(