Recherche un requete sql

domaxa
Invité n'ayant pas de compte PHPfrance

23 sept. 2013, 11:09

Bonjour,

Je souhaite désactivé l'envoi de mails aux personnes de ma BDD qui ont une adresse erronée et qui retournent un "undelivered" à chq fois que je leur envoie un message.
J'ai donc la liste de ses adresses dans un fichier externe (txt ou xls etc.) et je connais la table et le champs à modifier (ci-dessous)
Table: m_mailing_doc_subscrib
Champ: "document_publicationstatus" qui passera du statut PUBLICATED au statut DEACTIVATED lorsque l'adresse mail du champ email figurera aussi dans la liste "undelivered".

Auriez vous une idée de la syntaxe à utiliser pour cette requête?

Merci de votre aide,

ViPHP
AB
ViPHP | 5818 Messages

23 sept. 2013, 20:55

Si j'ai bien compris tu veux récupérer les adresses d'un fichier texte et faire des mises à jour dans ta bdd ?

Cela va dépendre de ton fichier de départ.
Si c'est un fichier CSV tu pourras utiliser fgetcsv pour construire ton tableau de données.
Si c'est un fichier texte tu pourras utiliser file()

Ensuite tu fais une boucle sur ce tableau pour faire tes requêtes. Si tu as beaucoup de maj à faire l'idéal serait d'utiliser des requêtes préparées.
Mais d'abord il faut récupérer ton tableau et le visualiser pour pouvoir construire correctement ton code.

ViPHP
ViPHP | 2577 Messages

24 sept. 2013, 10:38

Bonjour,

Avec un éditeur de texte, tu peux faire :
update m_mailing_doc_subscrib set document_publicationstatus = DEACTIVATED where adressemail in (
'[email protected]',
...
'[email protected]'
)
et exécuter ce fichier via phpmyadmin.
Ca revient juste à modifier ton fichier texte d'adresse mail en ordre sql.

ViPHP
pjl
ViPHP | 2119 Messages

26 sept. 2013, 17:54

Si c'est à faire une seule fois, tu prends la solution de Mazarini. Tu peux même utiliser un tableur pour créer tes requêtes et les exécuter ensuite via phpmyadmin.

Si c'est à faire régulièrement, autant faire un script PHP en utilisant les commandes citées par AB.