Comment faire une boucle dans un if

Comment faire une boucle dans un if - PHP - Programmation

Marsh Posté le 28-02-2008 à 12:44:18    

Bonjour à tous,
 
Voici mon problème. J'ai réalisé un espace membres, mais je voudrais que, quand le joueur vient s'enregistrer, le pseudo créé soit un numéro de joueur que je lui ai envoyé au préalable (avant qu'il ne s'inscrive).
Voici les conditions que j'avais faites au départ:

Code :
  1. if($pseudo_membre=="" ){echo "<p class=\"pave_main\" align=\"center\">Vous devez choisir un pseudo.<br><br><a href=\"javascript:window.history.back()\" class=\"lien4\"><u>Retour</u></a></p>";exit;}
  2.   if($passe_membre=="" ){echo "<p class=\"pave_main\" align=\"center\">Vous devez choisir un mot de passe.<br><br><a href=\"javascript:window.history.back()\" class=\"lien4\"><u>Retour</u></a></p>";exit;}
  3.   if($email=="" ){echo "<p class=\"pave_main\" align=\"center\">Vous devez indiquer votre email.<br><br><a href=\"javascript:window.history.back()\" class=\"lien4\"><u>Retour</u></a></p>";exit;}
  4.   if($nom=="" ){echo "<p class=\"pave_main\" align=\"center\">Vous devez indiquer votre nom.<br><br><a href=\"javascript:window.history.back()\" class=\"lien4\"><u>Retour</u></a></p>";exit;}
  5.   if($prenom=="" ){echo "<p class=\"pave_main\" align=\"center\">Vous devez indiquer votre prenom.<br><br><a href=\"javascript:window.history.back()\" class=\"lien4\"><u>Retour</u></a></p>";exit;}
  6.   if($adress=="" ){echo "<p class=\"pave_main\" align=\"center\">Vous devez indiquer votre adresse.<br><br><a href=\"javascript:window.history.back()\" class=\"lien4\"><u>Retour</u></a></p>";exit;}
  7.   if($postal=="" ){echo "<p class=\"pave_main\" align=\"center\">Vous devez indiquer votre code postal.<br><br><a href=\"javascript:window.history.back()\" class=\"lien4\"><u>Retour</u></a></p>";exit;}
  8.   if($ville=="" ){echo "<p class=\"pave_main\" align=\"center\">Vous devez indiquer votre ville.<br><br><a href=\"javascript:window.history.back()\" class=\"lien4\"><u>Retour</u></a></p>";exit;}
  9.   if($tel=="" ){echo "<p class=\"pave_main\" align=\"center\">Vous devez indiquer votre téléphone.<br><br><a href=\"javascript:window.history.back()\" class=\"lien4\"><u>Retour</u></a></p>";exit;}


Cela fonctionne jusque là, mais maintenant je voudrais ajouter la condition que le pseudo choisi corresponde avec le numéro de joueur que je lui ai envoyé avant. Ce numéro de joueur est déjà enregistré dans ma base... Voici ce que j'ai fait. Cela la fonctionne, mais seulement avec le premier joueur. Comment faire une boucle pour que tous les numéros de joueurs soient pris en compte?

Code :
  1. include("../connexion.php" );   
  2. $req=mysql_query("select joueur from table_joueurs" ); 
  3. $result=mysql_fetch_array($req);
  4. $joueur=$result['joueur'];   
  5.   if($pseudo_membre=="" ){echo "<p class=\"pave_main\" align=\"center\">Vous devez choisir un pseudo.<br><br><a href=\"javascript:window.history.back()\" class=\"lien4\"><u>Retour</u></a></p>";exit;}
  6.   if($pseudo_membre!==$joueur){echo "<p class=\"pave_main\" align=\"center\">Vous n'êtes pas un joueur enregistré.<br><br><a href=\"javascript:window.history.back()\" class=\"lien4\"><u>Retour</u></a></p>";exit;}
  7.   if($passe_membre=="" ){echo "<p class=\"pave_main\" align=\"center\">Vous devez choisir un mot de passe.<br><br><a href=\"javascript:window.history.back()\" class=\"lien4\"><u>Retour</u></a></p>";exit;}
  8.   if($email=="" ){echo "<p class=\"pave_main\" align=\"center\">Vous devez indiquer votre email.<br><br><a href=\"javascript:window.history.back()\" class=\"lien4\"><u>Retour</u></a></p>";exit;}
  9.   if($nom=="" ){echo "<p class=\"pave_main\" align=\"center\">Vous devez indiquer votre nom.<br><br><a href=\"javascript:window.history.back()\" class=\"lien4\"><u>Retour</u></a></p>";exit;}
  10.   if($prenom=="" ){echo "<p class=\"pave_main\" align=\"center\">Vous devez indiquer votre prenom.<br><br><a href=\"javascript:window.history.back()\" class=\"lien4\"><u>Retour</u></a></p>";exit;}
  11.   if($adress=="" ){echo "<p class=\"pave_main\" align=\"center\">Vous devez indiquer votre adresse.<br><br><a href=\"javascript:window.history.back()\" class=\"lien4\"><u>Retour</u></a></p>";exit;}
  12.   if($postal=="" ){echo "<p class=\"pave_main\" align=\"center\">Vous devez indiquer votre code postal.<br><br><a href=\"javascript:window.history.back()\" class=\"lien4\"><u>Retour</u></a></p>";exit;}
  13.   if($ville=="" ){echo "<p class=\"pave_main\" align=\"center\">Vous devez indiquer votre ville.<br><br><a href=\"javascript:window.history.back()\" class=\"lien4\"><u>Retour</u></a></p>";exit;}
  14.   if($tel=="" ){echo "<p class=\"pave_main\" align=\"center\">Vous devez indiquer votre téléphone.<br><br><a href=\"javascript:window.history.back()\" class=\"lien4\"><u>Retour</u></a></p>";exit;}
  15.   if($sup_direct=="" ){echo "<p class=\"pave_main\" align=\"center\">Vous devez indiquer le nom de votre supérieur direct.<br><br><a href=\"javascript:window.history.back()\" class=\"lien4\"><u>Retour</u></a></p>";exit;}

Reply

Marsh Posté le 28-02-2008 à 12:44:18   

Reply

Marsh Posté le 28-02-2008 à 13:19:30    

Code :
  1. while ($result=mysql_fetch_array($req)) {
  2.  $joueur = $result['joueur'];
  3.  ...
  4. }


---------------
Directeur Technique (CTO)
Reply

Marsh Posté le 28-02-2008 à 13:35:35    

Euuuuuh va falloir changer la requête là parce que ça risque de déconner ton truc!
 
Je vérifierais plutot si avec toutes les infos que tu as tu trouverais pas quelqu'un de déjà inscrit ;)

Reply

Marsh Posté le 28-02-2008 à 15:01:11    

CyberDenix a écrit :

Code :
  1. while ($result=mysql_fetch_array($req)) {
  2.  $joueur = $result['joueur'];
  3.  ...
  4. }



J'essaie mais ca ne va pas...
Est-ce correct comme cela?

Code :
  1. include("../connexion.php" );   
  2. $req=mysql_query("select joueur from table_joueurs" ); 
  3. $result=mysql_fetch_array($req);
  4. while ($result=mysql_fetch_array($req)) { 
  5. $joueur=$result['joueur']; 
  6. }
  7.  
  8.   if($pseudo_membre=="" ){echo "<p class=\"pave_main\" align=\"center\">Vous devez choisir un pseudo.<br><br><a href=\"javascript:window.history.back()\" class=\"lien4\"><u>Retour</u></a></p>";exit;}
  9.   if($pseudo_membre!==$joueur){echo "<p class=\"pave_main\" align=\"center\">Vous n'êtes pas un agent enregistré.<br>Veuillez contacter le Webmaster.<br><br><a href=\"javascript:window.history.back()\" class=\"lien4\"><u>Retour</u></a></p>";exit;}
  10.   if($passe_membre=="" ){echo "<p class=\"pave_main\" align=\"center\">Vous devez choisir un mot de passe.<br><br><a href=\"javascript:window.history.back()\" class=\"lien4\"><u>Retour</u></a></p>";exit;}
  11.   if($email=="" ){echo "<p class=\"pave_main\" align=\"center\">Vous devez indiquer votre email.<br><br><a href=\"javascript:window.history.back()\" class=\"lien4\"><u>Retour</u></a></p>";exit;}
  12.   if($nom=="" ){echo "<p class=\"pave_main\" align=\"center\">Vous devez indiquer votre nom.<br><br><a href=\"javascript:window.history.back()\" class=\"lien4\"><u>Retour</u></a></p>";exit;}
  13.   if($prenom=="" ){echo "<p class=\"pave_main\" align=\"center\">Vous devez indiquer votre prenom.<br><br><a href=\"javascript:window.history.back()\" class=\"lien4\"><u>Retour</u></a></p>";exit;}
  14.   if($adress=="" ){echo "<p class=\"pave_main\" align=\"center\">Vous devez indiquer votre adresse.<br><br><a href=\"javascript:window.history.back()\" class=\"lien4\"><u>Retour</u></a></p>";exit;}
  15.   if($postal=="" ){echo "<p class=\"pave_main\" align=\"center\">Vous devez indiquer votre code postal.<br><br><a href=\"javascript:window.history.back()\" class=\"lien4\"><u>Retour</u></a></p>";exit;}
  16.   if($ville=="" ){echo "<p class=\"pave_main\" align=\"center\">Vous devez indiquer votre ville.<br><br><a href=\"javascript:window.history.back()\" class=\"lien4\"><u>Retour</u></a></p>";exit;}
  17.   if($tel=="" ){echo "<p class=\"pave_main\" align=\"center\">Vous devez indiquer votre téléphone.<br><br><a href=\"javascript:window.history.back()\" class=\"lien4\"><u>Retour</u></a></p>";exit;}
  18.   if($sup_direct=="" ){echo "<p class=\"pave_main\" align=\"center\">Vous devez indiquer le nom de votre supérieur direct.<br><br><a href=\"javascript:window.history.back()\" class=\"lien4\"><u>Retour</u></a></p>";exit;}

J'ai essayé de mettre la dernière accolade à la fin, mais ca ne change rien...

leflos5 a écrit :

Euuuuuh va falloir changer la requête là parce que ça risque de déconner ton truc!
 
Je vérifierais plutot si avec toutes les infos que tu as tu trouverais pas quelqu'un de déjà inscrit ;)


Changer toute la requête??
Pour vérifier si qq est déjà inscrit, je l'ai fait plus loin ça...
Mais là, je veux que le pseudo soit accepté si et seulement si il existe déjà bien dans "joueur".  
Sauvez-moi...merci d'avance!!

Reply

Marsh Posté le 28-02-2008 à 15:58:00    

Vraiment personne pour m'aider?

Reply

Marsh Posté le 28-02-2008 à 16:30:43    

Olala le pavé [:pingouino] Faudrait alléger. Et pis y'a un énorme problème, c'est qu'à chaque message d'erreur tu fais exit. Donc le mec qui fait une erreur, il n'aura pas gentillement la liste des erreurs affichées, mais les erreurs une par une, avec en plus en guise de retour en arrière un javascript qui risque de bugger à mort (dans certains cas le formulaire sera vide).
 
Faut tout revoir à 100% :( C'est une horreur d'usabilité là

Reply

Marsh Posté le 28-02-2008 à 16:35:35    

ok, ca je peux faire, merci du conseil. Mais pour ce qui est de la boucle pour rechercher dans la totalité de"joueur" pour ne pas avoir juste le premier. comment faire svp? c'est possible ou pas?

Reply

Marsh Posté le 28-02-2008 à 17:15:51    

bingojm a écrit :

Changer toute la requête??
Pour vérifier si qq est déjà inscrit, je l'ai fait plus loin ça...
Mais là, je veux que le pseudo soit accepté si et seulement si il existe déjà bien dans "joueur".  
Sauvez-moi...merci d'avance!!


 
Solutions pour savoir si le joueur existe:
- 1/ (ce que tu fais toi) --> récupérer tous les joueurs de la table, et essayer de mettre en place une boucle pour comparer à tous les éléments de la requête, le joueur du formulaire
- 2/ (ce qu'on te propose) --> regarder dans la table joueur, le joueur qui vient d'être saisie dans le formulaire --> si la requête ne retourne rien, c'est qu'il n'existe pas ;)
 
Les avantages de la méthode 2 sont que ta requête va renvoyer 1 ou 0 enregistrement (le joueur existe ou n'existe pas), donc plus besoin de faire de boucle.
Alors que dans la méthode 1, tu va récupérer tous les joueurs de la table et faire une boucle dessus, uniquement pour voir s'il y en a un de présent...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 28-02-2008 à 17:52:12    

Voilà qui est beaucoup plus clair pour moi, merci Xav:)
Je ne cherche pas à ce que l'on fasse le travail à ma place, mais puis-je au moins vous demander un petit coup de pouce pour commencer? Je ne vois pas trop comment je dois m'y prendre pour ça...
 
J'imagine que la fin sera:

Code :
  1. if($pseudo_membre==1){echo ... ...  else ...

Merci d'avance

Reply

Marsh Posté le 29-02-2008 à 16:47:06    

en gros, je verrai ça comme ça moi:

Code :
  1. //tu modifie un peu ta requête pour ne chercher que la présence de "pseudo_membre" dans la table joueur
  2. $req=mysql_query("select joueur from table_joueurs WHERE joueur = $pseudo_membre" );
  3. // pas besoin de contrôler le contenu de la requête (si elle contient un enregistrement, c'est que la valeur est bien celle que tu veux, sinon elle ne contient rien)
  4. $joueur_connu = (mysql_num_rows($res) > 0);
  5. // joueur_connu vaudra 1 (ou VRAI si tu préfère) si la requête a retourné quelque chose, 0 (ou FAUX) sinon

je te laisse gérer ton if sur $joueur_connu pour gérer ce que dois faire ton prog
 
en espérant que tu y vois plus clair, bonne continuation pour la suite


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed