[PHP/SQL] Requetes SQL et Boucle WHILE
bmerklen
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
Absinthe06 Messages postés 102 Date d'inscription Statut Membre Dernière intervention -
Absinthe06 Messages postés 102 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je veux récupérer des emails contenus dans un fichier texte et introduire ces emails dans des requètes SQL pour les traiter..
Voila ma procédure:
Mon problème est que cela ne marche pas.. les emails ne sont pas supprimés de ma BDD (Base de Données).
J'ai vérifié à coté, les requetes SQL sont bien formulées.
La connection à la BDD se fait bien.
Voila les symptomes:
- lorsque le dernier des emails contenus dans le fichier est présent dans ma BDD, il est bien supprimé ! mais pas les autres.. En revanche, si je renouvelle l'opération avec le meme fichier, cela ne marche plus.. (car le dernier email a déjà été supprimé..)
- la boucle while explore bien toutes les lignes, car cela m'affiche bien tout les emails..
Visiblement, il ne traite pas toutes les requetes SQL..
Y'a t'il une raison ? Qqn aurait la solution ?
Merci de votre aide :-)
Je veux récupérer des emails contenus dans un fichier texte et introduire ces emails dans des requètes SQL pour les traiter..
Voila ma procédure:
$fp = fopen("$fichier", "r"); // On ouvre le fichier while (!feof($fp)) { $ligne = fgets($fp,255); // On récupère les lignes du fichier (les emails..) mysql_query("UPDATE members SET email=NULL WHERE email='$ligne' "); echo $ligne.'<br />'; }
Mon problème est que cela ne marche pas.. les emails ne sont pas supprimés de ma BDD (Base de Données).
J'ai vérifié à coté, les requetes SQL sont bien formulées.
La connection à la BDD se fait bien.
Voila les symptomes:
- lorsque le dernier des emails contenus dans le fichier est présent dans ma BDD, il est bien supprimé ! mais pas les autres.. En revanche, si je renouvelle l'opération avec le meme fichier, cela ne marche plus.. (car le dernier email a déjà été supprimé..)
- la boucle while explore bien toutes les lignes, car cela m'affiche bien tout les emails..
Visiblement, il ne traite pas toutes les requetes SQL..
Y'a t'il une raison ? Qqn aurait la solution ?
Merci de votre aide :-)
A voir également:
- Boucle while sql
- Logiciel sql - Télécharger - Bases de données
- Sql (+) - Forum Programmation
- Boucle excel sans macro - Forum Excel
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Requête sql pix - Forum Python
2 réponses
Salut a toi bmerklen,
pour ton probleme, j'ai une hypothese toute simple : la fonction fgets renvoie la TOTALITE d'une ligne d'un fichier, jusqu'a rencontrer un retour a la ligne (caractere \n). Le probleme justement, c'est qu'il te renvoie le \n avec !! Donc dans ta comparaison entre le champ de la BD et la variable $ligne, tu te retrouves avec un caractere en trop (sauf pour la derniere ligne du fichier, ce qui explique que c'est la seule supprimée). Il faudrait que tu rajoutes un petit élement dans ton code :
ATTENTION, je suis pas sur pour strlen($ligne - 2), si jamais ca marche pas essaye avec - 1, et la ca marchera (sinon je veut bien me faire moine ;))
pour ton probleme, j'ai une hypothese toute simple : la fonction fgets renvoie la TOTALITE d'une ligne d'un fichier, jusqu'a rencontrer un retour a la ligne (caractere \n). Le probleme justement, c'est qu'il te renvoie le \n avec !! Donc dans ta comparaison entre le champ de la BD et la variable $ligne, tu te retrouves avec un caractere en trop (sauf pour la derniere ligne du fichier, ce qui explique que c'est la seule supprimée). Il faudrait que tu rajoutes un petit élement dans ton code :
$fp = fopen("$fichier", "r"); // On ouvre le fichier while (!feof($fp)) { $ligne = fgets($fp,255); // On récupère les lignes du fichier (les emails..) $new_ligne = substr($ligne, 0, strlen($ligne-2)); mysql_query("UPDATE members SET email=NULL WHERE email='$new_ligne' "); echo $ligne.'<br />'; }
ATTENTION, je suis pas sur pour strlen($ligne - 2), si jamais ca marche pas essaye avec - 1, et la ca marchera (sinon je veut bien me faire moine ;))
Salut,
Essaie ce site là dedans tu trouveras tout conçernant PHP & MySQL. Je te conseille de télécharger la documentation en français puis tu sera guidé dans les autres documentations et livres en anglais.
http://hannibalwebmaster.ifrance.com
puis clique sur la rubrique documentation et aprés sur logiciel.
J'espére que tu trouveras tout ce que t'en as besoin.
Essaie ce site là dedans tu trouveras tout conçernant PHP & MySQL. Je te conseille de télécharger la documentation en français puis tu sera guidé dans les autres documentations et livres en anglais.
http://hannibalwebmaster.ifrance.com
puis clique sur la rubrique documentation et aprés sur logiciel.
J'espére que tu trouveras tout ce que t'en as besoin.