|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Nouveau Membre du Club
![]() Inscription : juin 2008 Messages : 64 ![]() |
Bonjour
j'ai fait un programme qui lit à partir d'un fichier texte une chaine, puis la décomposes en mot, cont chacune est une adresse mail, pour chaque adresse, il exécute une requette permettant de selectionner le contact ayant cette adresse de la base de données, le copier dans une deuxiemme table, puis le supprimer de la premiere. mon probleme c'est qu'il n'effectu le traitement que sur le dernier mot de la chaine. il n'ya pas de probleme au niveau de la lecture à partir du fichier, car ça peu afficher tout les adresses. le probleme réside au niveau de la boucle WHILE aprés l'exécution de la requete, ça passe pas! j'ai pas pu trouver une explication pour ça, si vous en avez idée, merci de me guider!! ceci est le bout de code qui cose le probleme: Code :
|
||
|
|
00
|
|
|
#2 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Ca contient quoi $tok ?
Parce qu'a moins qu'il y ait quelque part un bout de code qui fasse changer $tok, ta boucle n'est arreté que par le timeout. Si $tok est un tableau contenant les emails, tu voulais peut etre plutot ecrire |
|
|
00
|
|
|
#3 | ||
|
Nouveau Membre du Club
![]() Inscription : juin 2008 Messages : 64 ![]() |
$tok c'est la variable contenant l'adresse mail extraite du fichier!
bon le programme lit correctement à partir du fichier, extrait les adresses mail à partir de la chaine lue coorrectement, pas de time out car le programme marche, mais seulement sur la dernière adresse qu'il lit! pas d'erreurs et il affiche enfin le msg de succés de traitement d'une seule adresse! je trouve ça bizare! NB: le meme code a fonctionné correctement avant! j'ai mit un echo $res; et ça affiche #8 Resource id, puis #9 resource id..... tant des adresses j'ai aussi essaié ça while($row=odbc_fetch_row($res) or die ("erreur")) ça affiche #8 Resource iderreur et neglige le reste de programme! ci joint est le code complet: Code :
|
||
|
|
00
|
|
|
#4 | ||
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Non je ne comprends pas ton code
Code :
Ton script s'arrete au bout des 50s que tu as définies. Pendant ces 50s il va repeter la meme requete. Si tu veux verifier que $tok n'est pas vide il faut faire |
||
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Inscription : juin 2008 Messages : 64 ![]() |
merci de m'avoir répondre!
concernant la variable $tok, elle n'est pas vide car j'arrive à l'afficher! en tt cas j'ai essayé le (!empty), et toujour le meme résultat. j'ai aussi affiché la requete dans la boucle while, et c'est bon, à chaque foix la variable $tok change de valeur à la fin de la boucle. ceci est l'une des requete généré: SELECT * FROM inscription WHERE Mail='hyounsi@tuniship.net ' par contre j'ai essayé le(empty) sur le résultat de la requete, et c'est vide! donc, c'est tout à fait normal qui va pas executer ce qui est dans la boucle while($row=odbc_fetch_row($res)). j'ai vérifié dans la base de donnée que les adresse existe! mon probleme c'est que le résultat de la requete (SELECT) est vide alors que les valeurs axistent dans la base. |
|
|
00
|
|
|
#6 | ||
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
En mettant "while ($tok)" tu veux faire quoi ?
Sinon j'ai regardé des exemples, et ils utilisent la fonction odbc_result pour recuperer le resultat des requetes odbc sur access Code :
|
||
|
|
00
|
|
|
#7 | ||
|
Nouveau Membre du Club
![]() Inscription : juin 2008 Messages : 64 ![]() |
merci pour m'avoir accorder tout ce temps!!
au début la variable $tok contient le premier mot dans le texte, le traitement dans la boucle while($tok) s'arete des que $tok change de valeur, et c'est à la fin de la boucle, comme suit: Code :
j'ai fait comme tu m'as expliqué par odbc_result mais toujours le meme probleme au niveaux des variable qu'il récupère vide, ou q'il ne les trouve pas, alors qu'elles existent dans la BD!! Remarque: pour un fichier il fait le traitement sur le derniers mot de fichier seulement et neglige le reste! |
||
|
|
00
|
|
|
#8 | ||
|
Nouveau Membre du Club
![]() Inscription : juin 2008 Messages : 64 ![]() |
bon j'ai juste mis 3 adresses dans mon fichier texte, et j'ai essayé de récupérer les variables et les afficher comme dans le code dessous:
Code :
nonvide ||| non vide ||| non vide mouna.baccouche@argania.com.tn|ns|NR|NR il ne garde que la derniere valeur |
||
|
|
00
|
|
|
#9 |
|
Nouveau Membre du Club
![]() Inscription : juin 2008 Messages : 64 ![]() |
le probleme c'était qu'il ya un espace de plus dans le mot récupéré du fichier, d'ou à chaque execution de la requete, aucun mot(+espace) ne sera trouvé! ![]() merci encore une foix sabotage |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com