Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 General Discussions
Prev Previous Post   Next Post Next
  #1  
Old 12-05-2002, 02:58 PM
Raptor Raptor is offline
 
Join Date: Nov 2001
Posts: 499
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Tweeked / Faster Update Post Count Script = Display feature

ok heres the reason for this - i have over 35,000 members and 500,000 posts on our forum. We recently did a purge of old crap and needed to run the update post counts script in admin cp.

Well to say it was slow was an understatment. It took a total of 14 hours to finish.

So a coder freind of mine wote some php which did the same job in only 2 hours (from a backup of our db) - it also displayed what action it took on each row (if post count in DB equalled the post count in the USER table it simply skipped - if it found a different number it displayed that value next to the user id.

Now you can use this code and do whatever you like with it. I thought it might be nice to implement into the admin cp. Not really a hack but more of a tweaked version perhaps. Enjoy anyway.....

PHP Code:
<?php

$link 
mysql_connect("localhost""username""password");
mysql_select_db("database_name");

set_time_limit(300000000);

if (
$startfrom)
    
$foundresult mysql_query("select * from user where userid >= $startfrom order by userid asc");
else
    
$foundresult mysql_query("select * from user order by userid asc");
$foundnum mysql_num_rows($foundresult);

for (
$i=0;$i<$foundnum;$i++)
{
    
$row mysql_fetch_array($foundresult);
    
$huntId $row["userid"];
    
    
// now count posts
    
$huntresult mysql_query("select count(*) from post where userid='$huntId'");
    
$huntnum mysql_result($huntresult0);
    
    
// posts identical to user entry?
    
if ( ($huntnum <= 0) || ($huntnum == $row["posts"]) )
    {
        echo(
"Skipping userid: $huntId<br>\r\n");
    }
    else
    {
        echo(
"Updating userid: $huntId (posts: $huntnum)<br>\r\n");
        
mysql_query("update user set posts = '$huntnum' where userid = '$huntId'");
    }
    
    
flush();
}

mysql_close();
?>
output looks like.....

Updating userid: 63475 (posts: 49)
Updating userid: 63477 (posts: 6)
Skipping userid: 63478
Updating userid: 63480 (posts: 5)
Skipping userid: 63482
Skipping userid: 63484
Skipping userid: 63486
Skipping userid: 63488
Updating userid: 63490 (posts: 70)

I'm sure someone could take this further, at least I hope so anyway
 

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 01:09 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.03211 seconds
  • Memory Usage 2,275KB
  • Queries Executed 12 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (2)post_thanks_box
  • (2)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (2)post_thanks_postbit_info
  • (2)postbit
  • (2)postbit_onlinestatus
  • (2)postbit_wrapper
  • (1)showthread_list
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_threadedmode.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids_threaded
  • showthread_threaded_construct_link
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete