aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMeik Sievertsen <acydburn@phpbb.com>2008-09-23 13:03:52 +0000
committerMeik Sievertsen <acydburn@phpbb.com>2008-09-23 13:03:52 +0000
commit9bb0d6e76df9d94a7ec0c4b3e371231dc6192d69 (patch)
treeb5ff754d03b2690ff1b66c9484a4f11f58c63ac0
parent4a3db854b7d0ce56f3a3033f1dcc9f5baa0af8f9 (diff)
downloadforums-9bb0d6e76df9d94a7ec0c4b3e371231dc6192d69.tar
forums-9bb0d6e76df9d94a7ec0c4b3e371231dc6192d69.tar.gz
forums-9bb0d6e76df9d94a7ec0c4b3e371231dc6192d69.tar.bz2
forums-9bb0d6e76df9d94a7ec0c4b3e371231dc6192d69.tar.xz
forums-9bb0d6e76df9d94a7ec0c4b3e371231dc6192d69.zip
synchronise post count in steps
git-svn-id: file:///svn/phpbb/branches/phpBB-3_0_0@8912 89ea8834-ac86-4346-8a33-228a782c2dd0
-rw-r--r--phpBB/includes/acp/acp_main.php39
1 files changed, 31 insertions, 8 deletions
diff --git a/phpBB/includes/acp/acp_main.php b/phpBB/includes/acp/acp_main.php
index 46ff484a99..e1963d0752 100644
--- a/phpBB/includes/acp/acp_main.php
+++ b/phpBB/includes/acp/acp_main.php
@@ -184,17 +184,40 @@ class acp_main
trigger_error($user->lang['NO_AUTH_OPERATION'] . adm_back_link($this->u_action), E_USER_WARNING);
}
- $sql = 'SELECT COUNT(p.post_id) AS num_posts, u.user_id
- FROM ' . USERS_TABLE . ' u
- LEFT JOIN ' . POSTS_TABLE . ' p ON (u.user_id = p.poster_id AND p.post_postcount = 1 AND p.post_approved = 1)
- GROUP BY u.user_id';
- $result = $db->sql_query($sql);
+ // Resync post counts
+ $start = 0;
- while ($row = $db->sql_fetchrow($result))
+ do
{
- $db->sql_query('UPDATE ' . USERS_TABLE . " SET user_posts = {$row['num_posts']} WHERE user_id = {$row['user_id']}");
+ $sql = 'SELECT COUNT(p.post_id) AS num_posts, u.user_id
+ FROM ' . USERS_TABLE . ' u
+ LEFT JOIN ' . POSTS_TABLE . ' p ON (u.user_id = p.poster_id AND p.post_postcount = 1 AND p.post_approved = 1)
+ GROUP BY u.user_id
+ ORDER BY u.user_id ASC';
+ $result = $db->sql_query_limit($sql, 200, $start);
+
+ if ($row = $db->sql_fetchrow($result))
+ {
+ $i = 0;
+
+ do
+ {
+ $sql = 'UPDATE ' . USERS_TABLE . " SET user_posts = {$row['num_posts']} WHERE user_id = {$row['user_id']}";
+ _sql($sql, $errored, $error_ary);
+
+ $i++;
+ }
+ while ($row = $db->sql_fetchrow($result));
+
+ $start = ($i < 200) ? 0 : $start + 200;
+ }
+ else
+ {
+ $start = 0;
+ }
+ $db->sql_freeresult($result);
}
- $db->sql_freeresult($result);
+ while ($start);
add_log('admin', 'LOG_RESYNC_POSTCOUNTS');