Boucle do-while

Foxy2Leo -  
 Utilisateur anonyme -
Salut,

J'ai un petit soucis avec mon bout de code en l'usage de la boucle while(). En fait, je fait une requête à la base de données et après je fais une boucle while pour afficher seuls les articles par exemple. Et toujours sur la meme page, à l'aide de la même requette, je veux afficher les couleurs pour que le visiteur aie le choix de faire un tri en fonction de la couleur. Le problème est que lorsque j'utilise la boucle while pour la deuxième fois, la requête n'envoierien. J'espère que que j'ai bien exposé le problème,

Code de la requete :
$requette_produit = mysql_query("SELECT * FROM produit, genre, types, marque, categorie WHERE produit.idType=types.idType AND produit.idGenre=genre.idGenre AND produit.idmarque=marque.idmarque AND types.idCat=categorie.idCat AND produit.etat='1' GROUP BY categorie.libcat limit 3 ");
$afficher_produit = mysql_fetch_assoc($requette_produit);



Code affichage d'article
<?php do { ?>
<div id="article"><?php echo $afficher_produit['article'] ?></div>
<?php } while ($afficher_produit = mysql_fetch_assoc($requette_produit)) ?>


Code Affichage Couleur
<?php do { ?>
<li><?php echo $afficher_produit['couleur'] ?></li>
<?php } while ($afficher_produit = mysql_fetch_assoc($requette_produit)) ?>


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.

2 réponses

Utilisateur anonyme
 
Bonjour

Pas besoin de refaire la requête, on peut repointer au début des résultats avec
mysql_data_seek($requette_produit,0)
.

Mais tu devrais surtout laisser tomber l'extension mysql_ native et utiliser mysqli ou PDO, car mysql_ est obsolète
1
NHenry Messages postés 15219 Date d'inscription   Statut Modérateur Dernière intervention   365
 
A la place d'utiliser do...while, utilises simplement while :
while($afficher_produit = mysql_fetch_assoc($requette_produit))
{
...
} 



Si tu veux repasser le résultat, il te faut refaire ta requête.
0