Importer 400 adresses email dans table php

Fermé
antho007 Messages postés 5 Date d'inscription lundi 28 juin 2010 Statut Membre Dernière intervention 2 juillet 2010 - 28 juin 2010 à 16:33
azerty0 Messages postés 1274 Date d'inscription samedi 27 octobre 2007 Statut Membre Dernière intervention 5 septembre 2013 - 2 juil. 2010 à 12:24
Bonjour,

je cherche à importer 400 adresses email contenue dans un fichier texte et séparé par une virgule dans une base de donnée d'adresse email pour un envoie de mailing list.

Y a t il une méthode pour le faire automatiquement

ma table s'appelle newsletter, elle comprend un champs "id" auto incrémenté et un champs "email" tout simplement, merci de m'aider car c'est urgent...

Help

SVP aidez moi


A voir également:

2 réponses

azerty0 Messages postés 1274 Date d'inscription samedi 27 octobre 2007 Statut Membre Dernière intervention 5 septembre 2013 75
28 juin 2010 à 16:47
Non, tu n'as pas de méthodes pour le faire authomatiquement,

tu vas devoir faire un script qui :

- recuperation du contenu du fichier
- explode sur le contenu avec la virgule en guise de séparateur

ensuite, tu parcours ton tableau issu du explode, et tu insers dans la base de données avec un foreach !

puis, tu peux aussi finir ton script de sorte a ce qu'il envoit les mails !
0
atout1 Messages postés 216 Date d'inscription mardi 11 mai 2010 Statut Membre Dernière intervention 17 juin 2011
Modifié par atout1 le 29/06/2010 à 11:04
voilà un petit script qui lire le contenu du fichier .txt et il fait l'ajout des mail dans la tableau newsletter

$fichier = "chemin du fichier .txt"; // chemin de ton fichier

if (file_exists($fichier))
{
$tableau = file($fichier);
while(list($cle,$val) = each($tableau))
{
$val = str_replace("\n", "", $val); // on remplace le retour à la ligne par rien
$mails = explode(";", $val); // $mails = tableau qui contient tous les @ mail</gras>
foreach ($mails as $mail)
{
if($mail == "")
{
}
else
{
$insertion = mysql_query("INSERT INTO newsletter VALUES ('', '$mail')") or die(mysql_error());
}
}
}
}

// les deux lignes qui viennet après : à utiliser dans le cas où tas un espace à la fin du text dans le fichier.txt

$id =mysql_insert_id(); // récupérer le dernier id insérer dans la base
// supprimer l'enregistrement qui correspond qu dernier id car elle est vide
$supression = mysql_query("DELETE FROM newslettre WHERE id = $id") or die(mysql_error());
après tu peux améliorer , par rapport a tes besoins

A+
0
azerty0 Messages postés 1274 Date d'inscription samedi 27 octobre 2007 Statut Membre Dernière intervention 5 septembre 2013 75
29 juin 2010 à 09:04
C'est un bon script que tu nous donnes la, il peut cependant être améliorer. Inutile dégager les sauts de ligne pour commencer, mais pourquoi pas.

Ensuite, je suggère d'améliorer nettement la condition if($mail == "") par un regexp qui teste si l'adresse en est bien une... avant de l'insérer dans la base. Des scripts regexp pour ce genre de choses existent déjà...

J'ai pas compris pour le dernier enregistrement vide sinon...
0
atout1 Messages postés 216 Date d'inscription mardi 11 mai 2010 Statut Membre Dernière intervention 17 juin 2011
Modifié par atout1 le 29/06/2010 à 10:29
bonjour,

il peut être améliorer oui tas raison, mais en fait je le fais rapidement hier car antho007 nous a dis que c'est urgent :)

pour le dernier enregistrement, en fait quand j'ai tester le script, il ajout toujours à la fin un enregistrement vide. c'est pourquoi j'ai mis la suppression.
mais attention, normalement il y avait un espace à la fin du text dans mon fichier.txt donc execute le code sans les deux dernier lignes
$id =mysql_insert_id(); // récupérer le dernier id insérer dans la base
// supprimer l'enregistrement qui correspond qu dernier id car elle est vide
$supression = mysql_query("DELETE FROM newslettre WHERE id = $id") or die(mysql_error());


après ca dépend du fichier.txt s'il y a un espace à la fin ou met la suppression sinon on ne le mets pas

Bonne journée
A+
0
antho007 Messages postés 5 Date d'inscription lundi 28 juin 2010 Statut Membre Dernière intervention 2 juillet 2010
1 juil. 2010 à 16:53
merci atout1 et azerty0 cela me donne des pistes, vous parlez de quel espace à la fin de chaque email, il suffirait que je les supprime tous les espaces afin que je n'ai plus ce problème. Mais le script que tu m'a fourni est conçu pour un fichier texte avec les emails séparés par un saut de ligne c'est bien çà??

Merci beaucoup en tout cas
0
atout1 Messages postés 216 Date d'inscription mardi 11 mai 2010 Statut Membre Dernière intervention 17 juin 2011
Modifié par atout1 le 2/07/2010 à 10:17
salut,

le script est conçu pour un fichier texte avec les emails séparés par un point virgule ; et saut de ligne

mais vérifie à la fin du fichier text s'il y a un espace ou pas :
s'il y a un espace supprime le à la main et tu exécute le script
0
azerty0 Messages postés 1274 Date d'inscription samedi 27 octobre 2007 Statut Membre Dernière intervention 5 septembre 2013 75
29 juin 2010 à 10:47
Sinon, il faut que le script degage les eventuels espaces a la fin, et voila ;). J'ai deja eus ce soucis aussi !
0
antho007 Messages postés 5 Date d'inscription lundi 28 juin 2010 Statut Membre Dernière intervention 2 juillet 2010
2 juil. 2010 à 12:07
ok c'est cool merci
0
azerty0 Messages postés 1274 Date d'inscription samedi 27 octobre 2007 Statut Membre Dernière intervention 5 septembre 2013 75
2 juil. 2010 à 12:24
0