Page 1 sur 1

savoir qu'on est a la dernière ligne d'une requete ?

Posté : 07 juin 2007, 18:22
par Gico
Bonjour
J'affiche le résultat d'une requête (des titres) avec une boucle while, à chaque boucle , j'ajoute une virgule après le titre, le prob c'est qu'a la dernière occurrence j'ai aussi une virgule. Je me doute qu'il faut que je mette une condition pour l'affichage de la virgule (" tant que ce n'est pas le dernier resultat"), mais comment sait-on qu'on est a fin de la requête ?

Code : Tout sélectionner

do { ?> <?php echo ' $row_sousCategories['ss_categorie']; ?> <?php if( "c'est pas la dernière ligne" ){ echo ", ";} ?> <?php } while ($row_sousCategories = mysql_fetch_assoc($sousCategories)); ?>
merci

Posté : 07 juin 2007, 18:57
par @rthur
Bonjour,

Avec la fonction mysql_num_rows() tu peux récupérer le nombre de résultats, donc ensuite il suffit que tu incrémentes une variable dans ta boucle et que tu compares avec le nombre de résultats renvoyés.

http://fr.php.net/mysql_num_rows

Posté : 07 juin 2007, 21:05
par Gico
ok j'ai fait ça et ça fonctionne
		$i = 0;
		do {  
 
echo $row_sousCategories['ss_categorie'];

 if($i != mysql_num_rows($sousCategories) -1){ echo ", "; $i++;} 

  } while ($row_sousCategories = mysql_fetch_assoc($sousCategories));

Merci de m'avoir mis sur la bonne piste

Posté : 07 juin 2007, 23:47
par @rthur
ok j'ai fait ça et ça fonctionne
		$i = 0;
		do {  
 
echo $row_sousCategories['ss_categorie'];

 if($i != mysql_num_rows($sousCategories) -1){ echo ", "; $i++;} 

  } while ($row_sousCategories = mysql_fetch_assoc($sousCategories));

Merci de m'avoir mis sur la bonne piste
De rien ;)

Si tu veux juste 2 conseils à la con:
- initialise $i à 1 plutôt que de mettre "-1" dans ton test, ça permettra de rendre ton code plus facilement compréhensible => plus facilement maintenable quand tu devras le relire plus tard.
- Affecte le résultat de mysql_num_rows() à une variable avant ta boucle while, ça permet d'éviter de l'appeler plusieurs fois et docn ça te fait gagner du temps d'exécution :)

Posté : 07 juin 2007, 23:51
par Invité
merci pour ces derniers conseils