|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Nouveau Membre du Club
![]() Inscription : novembre 2005 Messages : 135 ![]() |
Bonjour,
Je recontre un petit pb avec une boucle if else. Dans un formulaire de renvoie de login/mdp une personne entre sont adresse mail pour lui retourner son login et mdp perdu. la premiere partie de la boucle (IF) fonctionne. la deuxième (ELSE) ne fonctionne pas et je ne comprends pas pourquoi Merci de votre aide. Code :
|
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
Je suppose que dans ta base de données tu n'auras qu'un seul login/mot de passe pour une adresse email donnée?
Donc il faut plutot qu'après ta requete dans la base tu regardes si tu as bien un résultat qui est retourné avec mysql_num_rows(). Si oui alors tu fais un fetch pour envoyer l'email, sinon tu indiques qu'il n'y a pas de réponses. Et si ton else ne marche pas c'est surement parce que tu passes toujours dans le if (parce que l'adresse email est bien dans ta base). |
|
|
00
|
|
|
#3 | |||
|
Nouveau Membre du Club
![]() Inscription : novembre 2005 Messages : 135 ![]() |
Citation:
Citation:
Citation:
merci. |
|||
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
Normal qu'il ne fonctionne pas parce que si tu rentres une adresse présente, tu as un résultat donc ton fetch_assoc_array() retourne le résultat. Par contre pour une adresse non présente tu n'as aucun résultat et le fetch_assoc_array() te retourne alors false, donc tu ne rentres pas dans la boucle et donc pas du tout dans le if/else.
|
|
|
00
|
|
|
#5 | ||
![]() ![]() Développeuse PHP/Java Inscription : avril 2007 Messages : 3 686 ![]() |
salut
D'abord, une remarque en passant : il manque une ' dans ton include_once ('fichierdeconf.php') au début du script. C'est probablement une faute de copie, mais on se sait jamais Ensuite, tu recherches les associations ayant un email égal à $maillost. Donc comme ton if vérifie que l'email trouvé est égal à maillost, il est toujours vérifié Code php :
[/hors propos]
__________________
Modératrice PHP Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) |
||
|
|
00
|
|
|
#6 | ||
|
Nouveau Membre du Club
![]() Inscription : novembre 2005 Messages : 135 ![]() |
Bonjour,
[hors propos ON] croquette... ce jours la ma fille de 2 ans 1/2 ma fais mourrir de rire !!! Aujourd'hui, c'est a coup de ROQUETTE que je vais finir ce bout de script qui me rend dingue !!![hors propos OFF] Depuis hier am je cherche une solution en vain... voici mon bout de code: Code :
Dans l'etat, le script me renvois même une erreur Code :
Notice: Undefined variable: maillost in c:\program files\ Pourquoi tant de haine ! |
||
|
|
00
|
|
|
#7 | ||
![]() ![]() Développeuse PHP/Java Inscription : avril 2007 Messages : 3 686 ![]() |
Je crains que tes déclarations ne soient incorectes syntaxiquement. En clair, l'affectation d'une variable c'est = et non != ou ==
Code php :
__________________
Modératrice PHP Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) |
||
|
|
00
|
|
|
#8 | ||
|
Nouveau Membre du Club
![]() Inscription : novembre 2005 Messages : 135 ![]() |
Oups, pas vu !!!
J'ai donc modifier de cette mannière Code :
Quand la variable '$sc' est présente dans la table le script retourne bien "gagné !!! ;o)" par contre quand la variable '$sc' n'existe pas dans la table, la variable '$maillost' ne prend aucne valeur... merci de ton aide. |
||
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
Pk n'y a-t-il aucun ";" apres ton while?
J'en déduis qu'on revient encore sur le problème dont je t'ai parlé précédemment: Tu regardes dans ta BDD si le champ est présent. S'il y est, tu fais un while pour fetcher les résultats => deja la c'est bizarre, logiquement tu auras UN seul résultat, donc le while ne sert a rien, si tu en as plus d'un c'est que tu as un probleme de conception a l'inscription Ensuite, tu fais un while pour récupérer, or si t'as aucune donnée sur cet email dans la base, tu récupères rien, donc ton $mailhost il vaudra "au mieux" FALSE. Enfin, comme tu as pas de ; apres ton while, il prend le if/else comme étant l'unique instruction de ton while, donc quand il sort du while directement (aucun résultat, condition fausse des le debut) il passe completement le if/else Deux solutions : 1/ ajoutes un ; apres le while 2/ utilises mysql_num_rows !! |
|
|
00
|
|
|
#10 | |
![]() ![]() Développeuse PHP/Java Inscription : avril 2007 Messages : 3 686 ![]() |
Citation:
Et comme le dit koopajah, si tu n'as pas aucun résultat, tu ne rentres pas dans le while et donc $maillost n'est pas affecté.
__________________
Modératrice PHP Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) |
|
|
|
00
|
|
|
#11 | ||
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
Ben en fait j'avais pensé que l'absence d'accolades était volontaire, pour permettre de fetcher tous les résultats (de toute facon y en a un seul ou 0).
Je me repete mais dans ce genre de cas un Code :
|
||
|
|
00
|
|
|
#12 |
|
Nouveau Membre du Club
![]() Inscription : novembre 2005 Messages : 135 ![]() |
Ok n'en jetez plus la coupe est pleine !!!
j'ai passé mon am et ma soirée d'hier sur ce petit truc, j ai regarder du coté de pas mal de fonction (if else, switch case, foreach), je crois que je suis en train de me noyer dans ... un verre d'eau ! j'ai bien compris ou etait mon pb seulement je n'arrive pas à le solutionner. là, j'essais avec '$num_rows = mysql_num_rows($result);' qui a au moin le merite de me retourner une valeur 1 si l'adresse existe dans la table 0 si ce n'est pas le cas. j'ai donc avancer un peu. Je vous remercie tous les2 pour vos conseils. a+ |
|
|
00
|
|
|
#13 |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
As tu, simplement, rajouté un ";" apres ton while (sur la meme ligne exactement) ???
et remplace ton "if empty blablabla" par if($voir == true) ca veut dire "si c'est true, j'ai récupéré un résultat donc un email, sinon j'ai rien récupéré donc pas d'email" |
|
|
00
|
|
|
#14 | |||
|
Nouveau Membre du Club
![]() Inscription : novembre 2005 Messages : 135 ![]() |
Citation:
Par contre cela a l'air de fonctionner: Code :
|
|||
|
|
00
|
|
|
#15 |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
en plus du ";" il faut changer la condition sur le if comme je t'ai dit plus haut.
le principal reste que ca marche et mysql_num_rows() est plus propre dans ton cas. |
|
|
00
|
|
|
#16 | ||
|
Membre confirmé
![]() ![]() Inscription : mai 2006 Messages : 196 ![]() |
Il faut bien coder et n'hésite pas à aérer ton code, à rajouter des parenthèses inutile pour PHP mais utile pour ta relecture, car je ne vois aucune accolade pour ton WHILE ?? Aussi un petit détail insouciant qui doit être la base de tes problème : a savoir le COMMENTAIRE à côter de ton else, si tu met bout à bout ton else tu vois pas le souci ?
Essaye cela : Code :
|
||
|
|
00
|
|
|
#17 |
|
Nouveau Membre du Club
![]() Inscription : novembre 2005 Messages : 135 ![]() |
merci à tous de votre aide.
Ce script fonctionne maintenant avec envoi de mail etc... Si ca interresse qq un, je le mets sur le forum ou en mp.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com