Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 General Discussions
  #1  
Old 05-01-2001, 12:51 AM
bigmattyh's Avatar
bigmattyh bigmattyh is offline
 
Join Date: Nov 2001
Posts: 141
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hey everyone,

Let's say you have a user who posts a number of messages on your board as a guest. We'll call him "Bill." Then, let's say Bill registers as a user! But now his official post count is a big fat zero -- and in truth, Bill posted over 50 messages before he registered! What's a webmaster to do?

Well, fear not. I, Matt Howell, have written you a script that will fix this conundrum. This handy little script searches through all your old guest-posts to see if any were written by someone whose name is registered. So, all the old guest-posts under the name of "Bill" would be displayed just like any other of Bill's posts -- and his post count gets updated in the process, too.

Upload this to your admin directory, and name it whatever you like. It requires no additional modifications, and it works off your already existing config.php for db info.

PHP Code:
<?php

include "config.php";

$GLOBALS["link"] = mysql_connect($servername$dbusername$dbpassword)
  or 
printMySQLError();

$load_db mysql_select_db($dbname)
  or 
printMySQLError();

$query "SELECT username, userid FROM user";
$result mysql_query($query)
  or 
printMySQLError();

while (
$row mysql_fetch_array($result)) {
  
$username $row["username"];
  
$userid $row["userid"];

  
$query sprintf("UPDATE post SET userid=%d WHERE username = \"%s\"  AND userid=0"$userid$username);
  
mysql_query($query)
    or 
printMySQLError();

  
$query sprintf("SELECT COUNT(*) FROM post WHERE userid=%d"$userid);
  
$countresult mysql_query($query)
    or 
printMySQLError();
 
  
$count mysql_fetch_array($countresult);
  
$numposts $count["COUNT(*)"];

  
$query sprintf("UPDATE user SET posts=%d WHERE userid=%d"$numposts$userid);
  
mysql_query($query)
    or 
printMySQLError();

  echo (
"User ".$userid." completed... \n");
}

echo (
"All done!");

function 
printMySQLError()
{
  
$link $GLOBALS["link"];
  
printf("<br> error:%d %s <br>\n"mysql_errno($link), mysql_error($link));
  print (
"Please reload--the database server was temporarily down!<br>\n");
}

?>
And all you hardcore PHP-peeps out there -- please don't get on to me for the non-OOP format. I'm just learning how to do OOP now. If you'd like, you can send me examples of how to do DB queries in OOP, and I'll be happy to learn!
Reply With Quote
  #2  
Old 05-04-2001, 12:39 AM
lmj709
Guest
 
Posts: n/a
Default

bigmattyh ,

Thanks! That works like a dream! The only thing it doesn't do is update the user titles to reflect the post count, but that's easily done in the Admin CP anyway.
Reply With Quote
Reply

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 02:44 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.03490 seconds
  • Memory Usage 2,178KB
  • Queries Executed 13 (?)
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
  • (1)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_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
  • 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