vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   Modification Requests/Questions (Unpaid) (https://vborg.vbsupport.ru/forumdisplay.php?f=112)
-   -   Mass delete based on txt file -- need help to finish (https://vborg.vbsupport.ru/showthread.php?t=155598)

ChurchMedia 08-18-2007 08:31 PM

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.");
?>


ChurchMedia 08-19-2007 11:24 PM

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.

711 11-22-2007 05:20 PM

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.

Marco van Herwaarden 11-23-2007 04:40 AM

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 . "%'"); 


Devices 05-13-2008 09:07 AM

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.


All times are GMT. The time now is 06:32 AM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.09886 seconds
  • Memory Usage 1,757KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_code_printable
  • (4)bbcode_php_printable
  • (1)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (5)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.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
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete