Go Back   vb.org Archive > Community Discussions > Modification Requests/Questions (Unpaid)
  #1  
Old 08-18-2007, 08:31 PM
ChurchMedia's Avatar
ChurchMedia ChurchMedia is offline
 
Join Date: Dec 2002
Location: Las Cruces, NM
Posts: 473
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Mass delete based on txt file -- need help to finish

Hi,

I'm trying to clean up my database. I bought Emall Extractor to pull out all email addresses from bounced email. So here is how this works:

1) I send out a message.
2) I get the bounces through Outlook, which automatically puts bounces in a separate folder.
3) I export that folder with the bounced emails to a csv file.
4) I use Email Extractor to extract all of the bad email addresses into a text file.
5) I use the mass_delete.php script to delete the users attached to those emails.

So now I have a text file with like 7500 emails in it -- one on each line. I want to upload this file using my script and have it delete the users that have those email address. My code skills are really bad right now due to some cognitive problems, so I could use some help to de-bug it. Although I'm not putting this in the paid hacks section, you can expect a donation for your help.

I've attached the script. Thanks in advance for your help!

I'm really close. My query just isn't right. What am I missing?

PHP Code:
<?php
/*======================================================================*\
|| #################################################################### ||
|| # ChurchMedia Text File Import -- Mass Delete v.1.0                  # ||
|| # ---------------------------------------------------------------- # ||
\*======================================================================*/

// ######################## SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);
set_time_limit(18000);

// ##################### DEFINE IMPORTANT CONSTANTS #######################
define('CVS_REVISION''$RCSfile: importadmin.php,v $ - $Revision: 1.0 $');
define('NO_REGISTER_GLOBALS'1);

// #################### PRE-CACHE TEMPLATES AND DATA ######################
$phrasegroups = array();
$specialtemplates = array();

// ########################## REQUIRE BACK-END ############################
require_once('./global.php');

// You will need to edit this line below for the server path to your forum directory.
$path "/home/cmn/public_html/CMN/";

// ########################################################################
// ######################### START MAIN SCRIPT ############################
// ########################################################################

        
$fdfopen("/home/cmn/public_html/CMN/admincp/test.txt""r") or die ('Cannot find file');
        
$total=0;
        while (!
feof($fd))
        {
            
$delemail fgets($fd4096);
              
$user_info $db->query_read("SELECT * FROM " TABLE_PREFIX "user WHERE email = '$delemail'");
            
$user $db->fetch_array($user_info);
            
$username=$user['username'];
            
$usergroup=$user['usergroupid'];
            
$useremail=$user['email'];
            
            
//user doesn't exist

            
if ($username == '')
            {
                print (
"$username does not exist....<br />");
            }

            
//user is a Pro Member
            
elseif ($usergroup == '20')
            {
                print (
"$username is a Pro Member... skipping...<br />"); 
            }

            
//user is a NOT a Pro Member -- Delete Account
            
elseif ($useremail == '$delemail' AND $usergroup != '20'
            {
                
$userdm =& datamanager_init('User'$vbulletinERRTYPE_CP);
                
$userdm->set_existing($user);
                
$userdm->delete();
                unset(
$userdm);
            
                print (
"$useremail has been deleted....<br />");
                
$total $total+1;
             }
            
        }
print (
"Total users deleted: $total. \n You should update your counters now.");
?>
Reply With Quote
  #2  
Old 08-19-2007, 11:24 PM
ChurchMedia's Avatar
ChurchMedia ChurchMedia is offline
 
Join Date: Dec 2002
Location: Las Cruces, NM
Posts: 473
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'm really close. There's a problem with my query and I've tried it every way I know how:

PHP Code:
$user_info $db->query_read("SELECT * FROM " TABLE_PREFIX "user WHERE email = " $delemail ""); 
I get this error:

Quote:
Invalid SQL:
SELECT * FROM vb_user WHERE email = edge.students@gmail.com;

MySQL Error : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@gmail.com' at line 1
Error Number : 1064
It's just not reading the email address correctly -- and when I put it in quotes it doesn't bring up the data. Any ideas?

I solved the problem and it works great. I'll try to package it up and release it.
Reply With Quote
  #3  
Old 11-22-2007, 05:20 PM
711 711 is offline
 
Join Date: Oct 2006
Location: CT
Posts: 43
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You are trying to use a literal operator on a string, which won't work here.

Try this:

Code:
$user_info = $db->query_read("SELECT * FROM " . TABLE_PREFIX . "user WHERE email LIKE " . $delemail . "%");
this will match the email address user@whatever.com with a wildcard right after it (along the lines of user@whatever.com* ). The wildcard can be any characters, or no characters. Since all of your email addresses are unique and none of them should have any characters after the TLD, this should work.
Reply With Quote
  #4  
Old 11-23-2007, 04:40 AM
Marco van Herwaarden Marco van Herwaarden is offline
 
Join Date: Jul 2004
Posts: 25,415
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Regardless if you use = or LIKE, non-numeric values should be enclosed by single quotes:

PHP Code:
WHERE email '" . $delemail . "'"); 
</SPAN>
Or:
PHP Code:
LIKE '" . $delemail . "%'"); 
Reply With Quote
  #5  
Old 05-13-2008, 09:07 AM
Devices Devices is offline
 
Join Date: Nov 2001
Posts: 36
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hi

I see from your other post you got this working https://vborg.vbsupport.ru/showthrea...mall+Extractor

Is there any chance you would share ?

I did PM you but never received a reply.
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 01:13 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.03968 seconds
  • Memory Usage 2,230KB
  • 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_code
  • (4)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