Problème de boucle

Résolu/Fermé
develySIDE Messages postés 50 Date d'inscription lundi 15 octobre 2012 Statut Membre Dernière intervention 27 avril 2016 - Modifié par jordane45 le 9/03/2016 à 10:41
develySIDE Messages postés 50 Date d'inscription lundi 15 octobre 2012 Statut Membre Dernière intervention 27 avril 2016 - 9 mars 2016 à 11:05
Bonjour,
Je réalise actuellement un bout code php pour une application web me permettant d'afficher le lien "mail" que si le mail à l'indice spécifié est renseigner dans la base de donnée, j'utilise une boucle while, je récupère mes données, mais lorsque je pose ma condition sur le champ de l'adresse mail, celui ci m'affiche systématiquement le champ mail, meme si celui ci n'est pas renseigner dans la base de donnée (valeur par defaut null), or je ne comprend pas pourquoi, puisqu'il y à un si _ sinon

voici le code :


while($a<$nb)                                      // on passe chaque ligne de résultat
{
$Nom_adherent = mysql_result($result,$a,"Nom_adherent");  // on récupère l'article
$Id_Adh = mysql_result($result,$a,"Id_Adh");  // on récupère l'article

$Num_adherent = mysql_result($result,$a,"Num_Adherent");  // on récupère l'article

$Class_Type = mysql_result($result,$a,"Class_Type");  // on récupère l'article

$Date_adhesion = mysql_result($result,$a,"Date_adhesion");

$Date_adh = DateMysqltoFr($Date_adhesion,'fr');

$Mail_adh = mysql_result($result,$a,"Email");
      
echo ("<td> <a href='Recherche_header_Adherent.php?id=$Nom_adherent&Num=$Num_adherent&CT=$Class_Type'>$Nom_adherent</a></td>");

echo ("<td><a href='Recherche_header_Adherent.php?id=$Nom_adherent&Num=$Num_adherent&CT=$Class_Type'>$Num_adherent</a></td>");

echo ("<td><a href='Recherche_header_Adherent.php?id=$Nom_adherent&Num=$Num_adherent&CT=$Class_Type'>$Date_adh</a></td>");
      
If (empty($Mail_adh))
{ 

echo "<td><a href='Historique_liste_adh.php?adh=$Id_Adh'>Cacher</a><br><a href='readhesion.php?Id_Adh=$Id_Adh'>Courrier</a></td>";

}
else
{
echo "<td><a href='Historique_liste_adh.php?adh=$Id_Adh'>Cacher</a><br><a href='readhesion.php?Id_Adh=$Id_Adh'>Courrier</a><br><a href='mail.php?Id_Adh=$Id_Adh'>Mail</a></td>";

}
      
echo ("</tr>");
$a++;
}


Si vous pouviez m'aider à comprendre, car à l'heure actuelle je ne vois toujours pas (après 4heure de réflexion)

Merci d'avance !

EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

1 réponse

jordane45 Messages postés 38175 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 mai 2024 4 667
9 mars 2016 à 10:47
Bonjour,

1 - Tu utilises l'ancienne extension MYSQL.
je t'invite à lire ceci :
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top

Puis à passer à PDO ( ou mysqli )
https://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli

https://www.commentcamarche.net/faq/27489-pdo-une-autre-facon-d-acceder-a-vos-bases-de-donnees

2 - Je te conseille d'écrire tes IF ELSE de la façon suivante :
if ($a === $b) {
   bar();
} elseif ($a > $b) {
  $foo->bar($arg1);
} else {
  BazClass::bar($arg2, $arg3);
}

Voir la norme PSR2 : https://www.php-fig.org/psr/psr-2/


3 - Nous ne savons pas ce que contiennent tes variables.
Peux tu faire un ECHO de ta variable $Mail_adh et nous le montrer ?

0
develySIDE Messages postés 50 Date d'inscription lundi 15 octobre 2012 Statut Membre Dernière intervention 27 avril 2016
9 mars 2016 à 11:05
Je ne peux passé en pdo car l’hébergeur est trop ancien, navré, j'ai réussit à résoudre mon problème, je l'explique au cas ou certain aurai le même:

grace à var_dump($Mail_adh);
j'ai pue voir que la longueur de la chaine était de 1, malgré qu'elle n'affiche rien, aussi j'ai poser une condition sur la longueur, et non sur le contenu de la variable

Merci beaucoup pour votre aide en tout cas
0