1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-08 07:36:32 +02:00

Speed up user selection on large DB

This commit is contained in:
e107steved
2008-03-23 21:22:16 +00:00
parent 0be9e2bb37
commit 244e28d066

View File

@@ -11,9 +11,9 @@
| GNU General Public License (http://gnu.org). | GNU General Public License (http://gnu.org).
| |
| $Source: /cvs_backup/e107_0.8/e107_files/shortcode/batch/user_shortcodes.php,v $ | $Source: /cvs_backup/e107_0.8/e107_files/shortcode/batch/user_shortcodes.php,v $
| $Revision: 1.8 $ | $Revision: 1.9 $
| $Date: 2008-03-16 16:38:06 $ | $Date: 2008-03-23 21:22:16 $
| $Author: asperon $ | $Author: e107steved $
+----------------------------------------------------------------------------+ +----------------------------------------------------------------------------+
*/ */
if (!defined('e107_INIT')) { exit; } if (!defined('e107_INIT')) { exit; }
@@ -337,22 +337,17 @@ global $sql, $user, $full_perms;
if (!$full_perms) return; if (!$full_perms) return;
if(!$userjump = getcachedvars('userjump')) if(!$userjump = getcachedvars('userjump'))
{ {
$sql->db_Select("user", "user_id, user_name", "ORDER BY user_id ASC", "no-where"); $sql->db_Select("user", "user_id, user_name", "`user_id` > ".intval($user['user_id'])." AND `user_ban`=0 ORDER BY user_id ASC LIMIT 1 ");
$c = 0; if ($row = $sql->db_Fetch())
while ($row = $sql->db_Fetch())
{ {
$array[$c]['id'] = $row['user_id'];
$array[$c]['name'] = $row['user_name'];
if ($row['user_id'] == $user['user_id'])
{
$userjump['prev']['id'] = $array[$c-1]['id'];
$userjump['prev']['name'] = $array[$c-1]['name'];
$row = $sql->db_Fetch();
$userjump['next']['id'] = $row['user_id']; $userjump['next']['id'] = $row['user_id'];
$userjump['next']['name'] = $row['user_name']; $userjump['next']['name'] = $row['user_name'];
break;
} }
$c++; $sql->db_Select("user", "user_id, user_name", "`user_id` < ".intval($user['user_id'])." AND `user_ban`=0 ORDER BY user_id DESC LIMIT 1 ");
if ($row = $sql->db_Fetch())
{
$userjump['prev']['id'] = $row['user_id'];
$userjump['prev']['name'] = $row['user_name'];
} }
cachevars('userjump', $userjump); cachevars('userjump', $userjump);
} }