[PHP/SQL] Requetes SQL et Boucle WHILE
bmerklen
Messages postés
6
Statut
Membre
-
Absinthe06 Messages postés 113 Statut Membre -
Absinthe06 Messages postés 113 Statut Membre -
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
- Boucle excel sans macro - Forum Excel
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
- Smart tv qui s'allume et s'éteint en boucle - Forum Téléviseurs
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.