Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 General Discussions
  #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
  #2  
Old 12-05-2002, 07:24 PM
Xenon's Avatar
Xenon Xenon is offline
 
Join Date: Oct 2001
Location: Bavaria
Posts: 12,878
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

closed because double-post

read the other thread why this code don't work correct
Closed Thread

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:45 PM.


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.09423 seconds
  • Memory Usage 2,172KB
  • Queries Executed 11 (?)
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)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (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)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_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • 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
  • 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