Bonjour,
j'aimerais savoir comment faire pour afficher une phrase, si une boucle while ne retourne aucun résultat? merci
Bonne journéeCode:
1
2
3
4
5
6 <?php while ($donnees = mysql_fetch_array($reqliste)){ ?> <tr align="center>...;etc <?php }
Version imprimable
Bonjour,
j'aimerais savoir comment faire pour afficher une phrase, si une boucle while ne retourne aucun résultat? merci
Bonne journéeCode:
1
2
3
4
5
6 <?php while ($donnees = mysql_fetch_array($reqliste)){ ?> <tr align="center>...;etc <?php }
Autrement dit, si la requête n'a renvoyé aucun résultat ?
Plusieurs possibilités :
- tester le nombre de données renvoyées avant la boucle (soit par fonction type mysql_num_rows, soit par une requête select COUNT avant)
- renseigner un booléen dans la boucle et afficher la phrase uniquement si le booléen est faux :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 <?php $donneesAffichees = false; while ($donnees = mysql_fetch_array($reqliste)){ $donneesAffichees = true; ?> <tr align="center>...;etc <?php } if ($donneesAffichees === false) { ?> Pas de données !!!<br> <?php }
Merci mais ça marche pas.....quand j'insère le code il ne trouve plus aucune formation.....
Bonjour,
Tu devrais relire la signature de Celira :)
Si ton code affiche systématiquement qu'il n'y a "Pas de données" c'est peut-être que tu as oublié de passer le flag à TRUE dans la boucle while (ligne 4 du code de Celira).
Oui je sais mais il n'y a pas de message d'erreur, rien ne se passe....
Peut-on voir le code réel (genre sans les "etc...") ?
Evidemment, le voici:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <?php $reqliste = mysql_query("SELECT * FROM conf where date > NOW()- INTERVAL 1 MONTH order by date" ); $donneesRetour = false; while ($donnees = mysql_fetch_array($reqliste)) $donneesRetour = true; { ?> <tr align="center"><td bgcolor="61172d"><font face="Arial" color="white"><?php echo $donnees['date']; ?><br>Horaire:<br><?php echo $donnees['horaire']; ?></font></td><td><font face="Arial" color="61172d">Conférence</font><br><a href="<?php echo $donnees['chemin']; ?>" target="_blank" title=""><br><?php echo $donnees['intitule']; ?><br></a></td><td><font face="Arial" size=2><?php echo $donnees['objectifs']; ?><br></font></td><td><font face="Arial" size=2><?php echo $donnees['public']; ?></font></td><td><p><blink><a href="http://www.xx.com/bulletin.php?comments=<?php echo $donnees['intitule_conf']; ?> - <?php echo $donnees['date']; ?> & num_formation=<?php echo $donnees['id']; ?>">S'inscrire</a></blink><br><br><font color="#800000" size=1 face="Arial"></font><br></p></td> <?php } if ($donneesRetour === false) { ?> Pas de données !!!<br> <?php } ?>
Ouille mes yeux...
Si tu indentais ton code correctement, tu te serais rendu compte que ton expression $donneesRetour = true; n'est pas l'intérieur des accolades du while, ce qui fait provoque un comportement totalement différent :
Note : je n'ai rien modifié à part l'indentation, donc ce code ne marche pas plus qu'avant.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16<?php $reqliste = mysql_query("SELECT * FROM conf where date > NOW()- INTERVAL 1 MONTH order by date" ); $donneesRetour = false; while ($donnees = mysql_fetch_array($reqliste)) $donneesRetour = true; { ?> <tr align="center"><td bgcolor="61172d"><font face="Arial" color="white"><?php echo $donnees['date']; ?><br>Horaire:<br><?php echo $donnees['horaire']; ?></font></td><td><font face="Arial" color="61172d">Conférence</font><br><a href="<?php echo $donnees['chemin']; ?>" target="_blank" title=""><br><?php echo $donnees['intitule']; ?><br></a></td><td><font face="Arial" size=2><?php echo $donnees['objectifs']; ?><br></font></td><td><font face="Arial" size=2><?php echo $donnees['public']; ?></font></td><td><p><blink><a href="http://www.xx.com/bulletin.php?comments=<?php echo $donnees['intitule_conf']; ?> - <?php echo $donnees['date']; ?> & num_formation=<?php echo $donnees['id']; ?>">S'inscrire</a></blink><br><br><font color="#800000" size=1 face="Arial"></font><br></p></td> <?php } if ($donneesRetour === false) { ?> Pas de données !!!<br> <?php } ?>
Ok merci ça marche nickel, ça ce joue pas à grand chose.....encre merci et bonne journée