Je dois nettoyer une base

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Je dois nettoyer une base

par Stinger » 04 mai 2007, 16:32

merci beaucoup sadeq ton script marche impec ! bravo à toi

par sadeq » 19 avr. 2007, 11:59

Les liens sur les fonctions de PHP, c'est la super particularité du Forum. :wink:

Faut remercier, les gars des coulisses 8-)

par Stinger » 19 avr. 2007, 11:03

merci pour ta réponse sadeq.

Le site a été construit à l'origine en asp, puis migré en php/mysql. Je ne suis pas le développeurs qui a créé le site et donc je dois me débrouiller, mais mes compétences en php/mysql sont assez limité.

ton script est remarquablement documenté , merci beaucoup. et les liens sur les instructions c'est très malin.

par sadeq » 19 avr. 2007, 09:10

Bon puisque tu n'es pas très explicite, je te file un exemple expliqué.

Mais au préalable, vaut mieux transformer ton fichier Excel en fichier texte.

Voici l'exemple:
<?php 
/* 
Dans cet exemple, le traitement consiste à supprimer de la base de données les emails obsolètes chargés depuis un fichier texte. 

Le fichier texte contient dans chacune de ses lignes, une adresse Email de la forme : "[email protected]" 

La mise à jour se fera dans une base de données nommée "maBase" dans une table nommée "maTable" ayant un champ nommé "email" qui est un varchar(255) 
*/ 

//titre 
echo "<h1>Suppression des email obsolètes</h1>"; 

//charger le fichier des emails obsolètes dans une liste 
$emails_obsoletes = file("emails_obsoletes.txt"); 

//commencer le traitement si le fichier n'est pas vide 
if ( $emails_obsoletes && is_array($emails_obsoletes) && count($emails_obsoletes)>0 ){ 
    //ouvrir la base pour la mise à jour 
    $connexion = mysql_connect("localhost", "root", "") or die ("Arrêt: Le serveur ne répond pas!"); 
    mysql_select_db("maBase") or die ("Arrêt: La base de données est inaccessible!"); 
     
    //parcourir la liste pour traiter email/email 
    foreach($emails_obsoletes as $email){     
        //supprimer l'email en cours de la base 
        $email = trim($email); 
        if($email != "") { 
            $sql = "delete from maTable where email = '$email' "; 
            $result = @mysql_query($sql); 
            //vérifier si l'email est bien supprimé 
            if (mysql_affected_rows($connexion) > 0) 
                echo "<p>'$email' est supprimé"; 
            else echo "<p>'$email' n'est pas supprimé"; 
		} 
    } 
} 
else echo "<p>Le fichier des emails obsolètes est vide!"; 
?>

par Stinger » 18 avr. 2007, 17:39

merci pour vos reponse

la base est MySQL 4.1.8-standard ( phpMyAdmin 2.6.2-pl1 )

la base a 18 table celle qui m'intéresse, la table des membres a 20 champs..

quant au fichier excel j'ai fait un export de la table avec tous les emails et donc même nombre de champs et un fichier excel avec la liste des emails obsolètes recuperés par "email extractor" ( 1 champ donc )

par Shrell » 17 avr. 2007, 15:07

ou via un export CSV, ce qui reste encore le plus simple à mon sens
mais en effet, sans données supplémentaires à propos de la base de données, difficile de t'aider plus que ça

par sadeq » 17 avr. 2007, 12:52

oui, mais il faudrait savoir plus:
* le type de la base : mysql ou autre?
* la structure de la table : les champs, les céls?
* la structure de la feuille Excel

Il serait plus simple de l'écrire en VBS.

Je dois nettoyer une base

par Stinger » 17 avr. 2007, 10:51

Je dois nettoyer une base , supprimer plusieurs milliers d’abonnée « périmés »

Suite à un mailing J’ai récupérer dans ma boite mail les retour des adresses mail obsolètes.
Avec un petit soft (email extractor ) j’ai pu extraire une liste de ces emails foireux que j’ai mis dans Excel

Est t’il possible d’automatiser dans une table la suppression d’ enregistrement en partant d’un listing Excel

merci