Php créer variable fichier txt pour maj Mysql
Résolu
piersoleil
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
piersoleil Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
piersoleil Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je dois récupérer les lignes d'un fichier texte (elles correspondent à une adresse email) pour mettre à jour une table dans une base de données Mysql.
Exemple de lignes récupérées dans le fichier texte "Email_Pro a_supprimer.txt"
toto@exemple.com
bidon@msn.fr
lorie@live.fr
Voilà mon script php
L'affichage de la variable $ligne donne bien une adresse email par ligne.
Par contre, dans la clause WHERE Email='$ligne' la variable $ligne n'est pas reconnue.
Merci d'avance pour votre aide.
Cordialement
Je dois récupérer les lignes d'un fichier texte (elles correspondent à une adresse email) pour mettre à jour une table dans une base de données Mysql.
Exemple de lignes récupérées dans le fichier texte "Email_Pro a_supprimer.txt"
toto@exemple.com
bidon@msn.fr
lorie@live.fr
Voilà mon script php
$fichier = file("Email_Pro a_supprimer.txt"); // Nom du fichier à afficher, son adresse de localisation $total = count($fichier);// Nombre total des lignes du fichier for($i = 0; $i < $total; $i++) { // Départ de la boucle $ligne=$fichier[$i];//On récupère dans la variable $ligne chaque enregistrement echo $ligne.'<br>';//pour vérification, on affiche le contenu de la variable ligne mysql_query("UPDATE EMAIL_PRO SET Stop='Oui' WHERE Email='$ligne'");//On met à jour la table }
L'affichage de la variable $ligne donne bien une adresse email par ligne.
Par contre, dans la clause WHERE Email='$ligne' la variable $ligne n'est pas reconnue.
Merci d'avance pour votre aide.
Cordialement
A voir également:
- Php créer variable fichier txt pour maj Mysql
- Fichier bin - Guide
- Fichier epub - Guide
- Creer un fichier .bat - Guide
- Créer un lien pour partager des photos - Guide
- Fichier rar - Guide
4 réponses
Bonjour
Tu verras sans doute que la ligne est un peu plus longue que le texte que tu lis.
Si j'en crois la doc PHP, la fonction file laisse le caractère de retour chariot à la fin de chaque ligne, tu ne le vois pas à l'affichage, mais il empêche l'égalité de la comparaison dans le WHERE.
Tu n'as qu'à le supprimer avec $ligne=rtrim($ligne);
echo $ligne,' ',strlen($ligne),'<br>';//pour vérification, on affiche le contenu de la variable ligne
Tu verras sans doute que la ligne est un peu plus longue que le texte que tu lis.
Si j'en crois la doc PHP, la fonction file laisse le caractère de retour chariot à la fin de chaque ligne, tu ne le vois pas à l'affichage, mais il empêche l'égalité de la comparaison dans le WHERE.
Tu n'as qu'à le supprimer avec $ligne=rtrim($ligne);
Merci beaucoup pour ta réponse.
J'ai inséré ton code :
A l'affichage écran, le retour chariot a dû disparaitre, mais le WHERE ne capte toujours pas.
Merci encore pour ton aide.
Cordialement
J'ai inséré ton code :
$fichier = file("Email_Pro a_supprimer.txt"); // Nom du fichier à afficher, son adresse de localisation $total = count($fichier); // Nombre total des lignes du fichier for($i = 0; $i < $total; $i++) { // Départ de la boucle $ligne=$fichier[$i];//On récupère dans la variable $ligne chaque enregistrement $ligne=rtrim($ligne); //On supprime le caratère retour chariot echo $ligne.'<br>';//pour vérification, on affiche le contenu de la variable ligne mysql_query("UPDATE EMAIL_PRO SET Stop='Oui' WHERE Email='$ligne'");//On met à jour la table }
A l'affichage écran, le retour chariot a dû disparaitre, mais le WHERE ne capte toujours pas.
Merci encore pour ton aide.
Cordialement
As-tu affiché la longueur pour voir si elle est bonne ?
Remplace rtrim par trim (sans r au début), il y a peut-être des line-feed au début des lignes.
Remplace rtrim par trim (sans r au début), il y a peut-être des line-feed au début des lignes.
Bravo, tu as trouvé la solution.
Mille remerciements.
Pour la communauté, j'affiche le script final qui fonctionne.
Bons codes à tous.
Mille remerciements.
Pour la communauté, j'affiche le script final qui fonctionne.
$fichier = file("Email_Pro a_supprimer.txt"); // Nom du fichier à afficher, son adresse de localisation $total = count($fichier); // Nombre total des lignes du fichier for($i = 0; $i < $total; $i++) { // Départ de la boucle $ligne=$fichier[$i];//On récupère dans la variable $ligne chaque enregistrement $ligne=trim($ligne); //On supprime les espaces inutiles echo $ligne.'<br>';//pour vérification, on affiche le contenu de la variable ligne mysql_query("UPDATE EMAIL_PRO SET Stop='Oui' WHERE Email='$ligne'");//On met à jour la table }
Bons codes à tous.