Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
  #1  
Old 01-13-2007, 01:42 PM
SnickersTK SnickersTK is offline
 
Join Date: Apr 2005
Location: Denmark
Posts: 82
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Does this mysql code work for deleting people's PMs if they have only 1 PM?

been making this code and I admit that I am very new to mysql, so it might not make sense.

I haven't dared to try it out.

PHP Code:
<?php
$connection 
mysql_connect("localhost""username""password");
   
mysql_select_db("database"$connection); //connect to server and select database
   
require ("global.php"); 
$time time() - (60 24 60 60);

$userid_result query("SELECT `userid` ' 
        . ' FROM `user` ' 
        . ' WHERE `pmtotal` = 1 ' 
        . ' INTERSECT '
        . ' Select `fromuserid` ' 
        . ' FROM `pmtext` ' 
        . ' WHERE `dateline` < 
$time");
        
//Make sure that the user-ids selected with 1 total PM only gets choosen if the PM is 60 days old.  


$sql ' TRUNCATE `*` ' 
        
' FROM `pm` ' 
        
' WHERE `userid` = $userid_result';
         
$sql 'TRUNCATE `*` ' 
        
' FROM `pmtext` ' 
        
' WHERE `fromuserid` = $userid_result'
         
MySQL_query($sql) or die('MySQL Failed Because: ' mysql_error()); 

?>
Any assistance is greatly appreciated. I think it is a nice hack. I am running a giant board and all members who signs up gets an welcome PM (very popular and I don't want to get rid of it)
Reply With Quote
  #2  
Old 01-13-2007, 02:16 PM
Tuk4 Tuk4 is offline
 
Join Date: Feb 2003
Posts: 19
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Well, never tried to work with PMs and stuff.
But suggestions to how i would make it, i would check the registration date - and check the message in PM date - and if 1. there for if the user have new message from another user, and he only have 1 pm, it wont delete it everytime.
Reply With Quote
  #3  
Old 01-15-2007, 02:55 PM
Farcaster Farcaster is offline
 
Join Date: Dec 2005
Posts: 386
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

It is notable that in MySQL v4.0 and on, TRUNCATE TABLE drops ALL ROWS, and does not take a WHERE clause. You also need to execute the queries and return the rows before using the results in another query. Even then, you are going to need to use explode to put them into a comma delimited string that you can use in the WHERE clause with IN. The easiest thing to do would probably be to execute a query to get all of the PMs you want to delete and then iterate through them and delete them using the PM datamanager. If you do it manually, you need to: 1) update the user table with the new post count, 2) delete the references in PM, and 3) delete the pm text from the pmtext table, BUT only if no other pm is referencing the same textid.
Reply With Quote
  #4  
Old 01-17-2007, 12:03 AM
Attilitus's Avatar
Attilitus Attilitus is offline
 
Join Date: Mar 2005
Posts: 393
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Farcaster View Post
It is notable that in MySQL v4.0 and on, TRUNCATE TABLE drops ALL ROWS, and does not take a WHERE clause. You also need to execute the queries and return the rows before using the results in another query. Even then, you are going to need to use explode to put them into a comma delimited string that you can use in the WHERE clause with IN. The easiest thing to do would probably be to execute a query to get all of the PMs you want to delete and then iterate through them and delete them using the PM datamanager. If you do it manually, you need to: 1) update the user table with the new post count, 2) delete the references in PM, and 3) delete the pm text from the pmtext table, BUT only if no other pm is referencing the same textid.
Ha ha... quoted for Notability.
Reply With Quote
  #5  
Old 01-17-2007, 02:19 AM
Dismounted's Avatar
Dismounted Dismounted is offline
 
Join Date: Jun 2005
Location: Melbourne, Australia
Posts: 15,047
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

And the ' . 's aren't needed.
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 05:32 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.04692 seconds
  • Memory Usage 2,206KB
  • 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)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (5)post_thanks_box
  • (5)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (5)post_thanks_postbit_info
  • (5)postbit
  • (5)postbit_onlinestatus
  • (5)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