Deux boucles while - PHP - Programmation
Marsh Posté le 24-08-2005 à 03:03:36
Un exemple de code par hasard ? Non, parce que c'est pas que ta question n'est pas claire, mais quand même
Marsh Posté le 24-08-2005 à 03:16:54
while($recupere_membre = mysql_fetch_assoc($envoi_membre))
{
$NombreDeTrouves = $NombreDeTrouves-1;
}
echo $NombreDeTrouves; //Affiche un nombre en fonction du nombre de boucles...
while($recupere_membre = mysql_fetch_assoc($envoi_membre))
{
echo "blabla"; //Affiche differentes informations...
}
Marsh Posté le 24-08-2005 à 03:36:08
Bon, déjà, j'en connais qui te diront que si tu dois utiliser deux boucles identiques (pour la condition), tu peux probablement obtenir le même résultat en une seule
Sinon, mysql_fetch_x lit une ligne du résultat d'une requête et la renvoit, jusqu'à ce qu'il n'y ait plus de lignes auquel cas il retourne false. C'est exactement ce qui se produit dans ta deuxième boucle : la première a parcouru tout les résultats de la requête, mysql_fetch_assoc n'a donc plus rien à renvoyer
Solution : retourner au début du dataset avec mysql_data_seek
Ceci dit, telle qu'elle est écrite là, ta première boucle est un peu inutile, mysql_num_rows ou un count sql t'aurait donné le même résultat de manière plus rapide
Marsh Posté le 24-08-2005 à 03:46:40
le manuel en est rempli
Code :
|
Hop, les 2 en 1
//edit pour correction de conneries dues au manque de sommeil
Marsh Posté le 24-08-2005 à 03:56:10
C'est bon sa marche (ouff...)
Et sinon, pour repositionner au tout début j'fais comment ?...
Merci ^^
Marsh Posté le 24-08-2005 à 04:03:21
Ola oui, il est temps que j'aille dormir moi...
Bon, le code est corrigé, pour ton autre question : RTFM, la réponse est marquée en toute lettre (enfin, en chiffre) dans le manuel, un peu de bonne volonté que diantre
Marsh Posté le 24-08-2005 à 04:09:34
J'ai fais : mysql_data_seek($envoi_membre,0);
Sa va plus vite pour reprendre à zero... sans me servir de mysql_num_rows()
Marsh Posté le 24-08-2005 à 15:41:56
Ouais. Enfin, c'était pas vraiment le but de mon exemple non plus, je voulais plutôt te montrer un exemple d'utilisation pour remplacer ta première boucle
Marsh Posté le 24-08-2005 à 15:52:43
Plus propre (et encore...) :
Code :
|
Edit : j'suis allé trop vite (merci naceroth), le bon truc c'est :
Code :
|
Marsh Posté le 24-08-2005 à 16:00:05
Sa boucle parcourt tous les résultats d'un dataset, la tienne tous les champs d'un seul résultat (ce qui est un peu idiot puisque l'utilisation de mysql_fetch_assoc implique que tu connaîs le nom des champs...)
Marsh Posté le 24-08-2005 à 16:05:13
Ah ouais, remplacez la 1ere ligne par
while($tab[] = mysql_fetch_assoc($query));
Marsh Posté le 24-08-2005 à 03:00:38
Salut !
Alors voilà je voudrais faire 2 boucles while avec les membres infos...
Mais sa ne marche pas ! La 1ere se fait, la 2e ne s'affiche pas !
Y'a moyen de faire que sa marche ?
Merci