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

Eléphant du PHP | 294 Messages

07 juin 2007, 18:22

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

07 juin 2007, 18:57

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
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 294 Messages

07 juin 2007, 21:05

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

07 juin 2007, 23:47

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 :)
Quand tout le reste a échoué, lisez le mode d'emploi...

Invité
Invité n'ayant pas de compte PHPfrance

07 juin 2007, 23:51

merci pour ces derniers conseils