cilo
Modérateur
Que puis-je faire pour vous?
Messages : 7 196 Inscrit le 07/11/01
Ville : Brignoud
Non connecté
|
|
Posté le 24 juin 2004 - 23 h 48 m 19 s |
|
|
Salut a tous!
Voila je cherche à faire 2 boucles avec le mysql_fetch_assoc
Malheureusement, la boucle contenant ListSecondaire ne tourne qu'une fois? pourquoi?
1. do {
2. Code Code Code...;
3. while ($row_ListSecondaire = mysql_fetch_assoc($ListSecondaire)) {
4. Code Code Code2;
5. }
6. Code Code Code3;
7. } while ($row_ListePrimaire = mysql_fetch_assoc($ListePrimaire));
|
|
| |
Message de cilo le 25 juin 2004 - 10 h 27 : Test
|
| |
Message édité 1 fois, la dernière par cilo le 24 juin 2004 - 23 h 49. |
| |
"Maintenant, on ne fait plus de camembert, on fabrique un truc rond et blanc qu'on appelle camenbert" M. Lepetit
|
KibitO
Betty Boop ma chérie je t\\\'aime plus que tout !!
Messages : 1 715 Inscrit le 22/02/02
Ville : Chassagny
Non connecté
|
|
Posté le 25 juin 2004 - 09 h 00 m 39 s |
|
|
Salut cilo.
Avec un Do... While, tu passes forcément au moins une fois dans ta boucle, mais avec un while, tu n'es pas obligé d'y passer. Si ton mysql_fetch_assoc($ListeSecondaire) ne revoie rien, c'est seulement ta boucle de $ListePrimaire qui ne tourne qu'une seule fois.. Mais je ne vois pas trop là... Ce que tu mets en "Code Code Code" ce sont tes requetes SQL n'est-ce pas ?
Peux-tu m'expliquer le but de tes boucles ?
|
|
| |
KibitO Piccoloo Porto
Ooooohhhhoooohohohoh I Love U So, Oooooohohohohooohohoooooo I Need You So
(© Wampas)
!! DefraK !!
|
cilo
Modérateur
Que puis-je faire pour vous?
Messages : 7 196 Inscrit le 07/11/01
Ville : Brignoud
Non connecté
|
|
Posté le 25 juin 2004 - 09 h 57 m 16 s |
|
|
J'ai une liste Primaire d'enregistrement, je veux passer qu'une seule fois la liste, d'ou le Do ... While, qui s'execute à merveille.
Seulement J'ai une liste secondaire ($ListSecondaire) qui est le resultat d'une requete sql que je veux parcourir pour chaque enregistrement de la liste primaire.
Seulement le parcours des enregistrements de la seconde liste ne se fait qu'une seul fois aussi, au premier enregistrement de ma liste primaire et pas pour tous!
|
|
| |
"Maintenant, on ne fait plus de camembert, on fabrique un truc rond et blanc qu'on appelle camenbert" M. Lepetit
|
KibitO
Betty Boop ma chérie je t\\\'aime plus que tout !!
Messages : 1 715 Inscrit le 22/02/02
Ville : Chassagny
Non connecté
|
|
Posté le 25 juin 2004 - 10 h 13 m 53 s |
|
|
Donne le code à l'intérieur de ta boucle en entier stp.
|
|
| |
KibitO Piccoloo Porto
Ooooohhhhoooohohohoh I Love U So, Oooooohohohohooohohoooooo I Need You So
(© Wampas)
!! DefraK !!
|
cilo
Modérateur
Que puis-je faire pour vous?
Messages : 7 196 Inscrit le 07/11/01
Ville : Brignoud
Non connecté
|
|
Posté le 25 juin 2004 - 10 h 24 m 03 s |
|
|
1. do {
2. echo "avant boucle secondaire : ".$row_ListePrimaire['NumID'];
3. while ($row_ListSecondaire = mysql_fetch_assoc($ListSecondaire)) {
4. echo "dans boucle secondaire : ".$row_ListSecondaire['NumIDs'];
5. }
6. echo "apres boucle secondaire : ".$row_ListePrimaire['NumID'];
7. } while ($row_ListePrimaire = mysql_fetch_assoc($ListePrimaire));
Voici le resulatat a l'ecran:
ListePrimaire contient 5 enregistrements
ListeSecondaire contient 2 enregistrements
A l'ecran :
avant boucle secondaire : 1
dans boucle secondaire : 1
dans boucle secondaire : 2
apres boucle secondaire : 1
avant boucle secondaire : 2
apres boucle secondaire : 2
avant boucle secondaire : 3
apres boucle secondaire : 3
avant boucle secondaire : 4
apres boucle secondaire : 4
avant boucle secondaire : 5
apres boucle secondaire : 5
|
|
| |
Message édité 1 fois, la dernière par cilo le 25 juin 2004 - 10 h 35. |
| |
"Maintenant, on ne fait plus de camembert, on fabrique un truc rond et blanc qu'on appelle camenbert" M. Lepetit
|
KibitO
Betty Boop ma chérie je t\\\'aime plus que tout !!
Messages : 1 715 Inscrit le 22/02/02
Ville : Chassagny
Non connecté
|
|
Posté le 25 juin 2004 - 10 h 28 m 10 s |
|
|
à aucun moment tu n'utilises $row_ListePrimaire...
|
|
| |
KibitO Piccoloo Porto
Ooooohhhhoooohohohoh I Love U So, Oooooohohohohooohohoooooo I Need You So
(© Wampas)
!! DefraK !!
|
cilo
Modérateur
Que puis-je faire pour vous?
Messages : 7 196 Inscrit le 07/11/01
Ville : Brignoud
Non connecté
|
|
Posté le 25 juin 2004 - 10 h 35 m 19 s |
|
|
Exact, mais j'ai mis l'exemple sans le code sous les yeux, scuse pour l'erreur
Donc une idée pour mon probleme
|
|
| |
"Maintenant, on ne fait plus de camembert, on fabrique un truc rond et blanc qu'on appelle camenbert" M. Lepetit
|
KibitO
Betty Boop ma chérie je t\\\'aime plus que tout !!
Messages : 1 715 Inscrit le 22/02/02
Ville : Chassagny
Non connecté
|
|
Posté le 25 juin 2004 - 10 h 49 m 54 s |
|
|
hum.. je réfléchi toujours.. vu le résultat, tu passes :
5 fois dans la boucle de $ListePrimaire
et
2 fois dans la boucle de $ListeSecondaire
Tu n'y passes pas une fois mais deux, donc le problème ne se pose plus non ?
|
|
| |
KibitO Piccoloo Porto
Ooooohhhhoooohohohoh I Love U So, Oooooohohohohooohohoooooo I Need You So
(© Wampas)
!! DefraK !!
|
cilo
Modérateur
Que puis-je faire pour vous?
Messages : 7 196 Inscrit le 07/11/01
Ville : Brignoud
Non connecté
|
|
Posté le 25 juin 2004 - 11 h 17 m 42 s |
|
|
Si! le probleme est que je lit que 1 fois les enregistrements de la deuxieme liste, et pas 5 fois
Voici le resultat voulu:
avant boucle secondaire : 1
dans boucle secondaire : 1
dans boucle secondaire : 2
apres boucle secondaire : 1
avant boucle secondaire : 2
dans boucle secondaire : 1
dans boucle secondaire : 2
apres boucle secondaire : 2
avant boucle secondaire : 3
dans boucle secondaire : 1
dans boucle secondaire : 2
apres boucle secondaire : 3
avant boucle secondaire : 4
dans boucle secondaire : 1
dans boucle secondaire : 2
apres boucle secondaire : 4
avant boucle secondaire : 5
dans boucle secondaire : 1
dans boucle secondaire : 2
apres boucle secondaire : 5
Moi je seche la dessus...
|
|
| |
"Maintenant, on ne fait plus de camembert, on fabrique un truc rond et blanc qu'on appelle camenbert" M. Lepetit
|
KibitO
Betty Boop ma chérie je t\\\'aime plus que tout !!
Messages : 1 715 Inscrit le 22/02/02
Ville : Chassagny
Non connecté
|
|
Posté le 25 juin 2004 - 11 h 23 m 38 s |
|
|
ah mais c'est le résultat voulu, pas le résultat que tu as sous les yeux.. ? ok J'avé pas vu ça comme ça, dsl.
Bon, si ton code n'a pas d'info particulieres et/ou importantes, envoie le moi sur mon @email, je vais y jeter un coup d'oeil de plus pret.
|
|
| |
KibitO Piccoloo Porto
Ooooohhhhoooohohohoh I Love U So, Oooooohohohohooohohoooooo I Need You So
(© Wampas)
!! DefraK !!
|
cilo
Modérateur
Que puis-je faire pour vous?
Messages : 7 196 Inscrit le 07/11/01
Ville : Brignoud
Non connecté
|
|
Posté le 25 juin 2004 - 11 h 38 m 57 s |
|
|
Merci pour la proposition ! !
J'ai pas les fichiers sous la main, mais si d'ici à ce soir personne n'a une idée, je te l'enverais...
|
|
| |
"Maintenant, on ne fait plus de camembert, on fabrique un truc rond et blanc qu'on appelle camenbert" M. Lepetit
|
KibitO
Betty Boop ma chérie je t\\\'aime plus que tout !!
Messages : 1 715 Inscrit le 22/02/02
Ville : Chassagny
Non connecté
|
|
Posté le 25 juin 2004 - 11 h 44 m 35 s |
|
|
|
|
|
| |
KibitO Piccoloo Porto
Ooooohhhhoooohohohoh I Love U So, Oooooohohohohooohohoooooo I Need You So
(© Wampas)
!! DefraK !!
|
Erel69
206 (¯`·.__[T3aM.L1b3rTe©]__.·´¯)
Messages : 19 449 Inscrit le 07/11/01
Ville : Lyon
Non connecté
|
|
Posté le 25 juin 2004 - 11 h 48 m 12 s |
|
|
Le 25 juin 2004 à 10 h 24, cilo a écrit :
1. do {
2. echo "avant boucle secondaire : ".$row_ListePrimaire['NumID'];
3. while ($row_ListSecondaire = mysql_fetch_assoc($ListSecondaire)) {
4. echo "dans boucle secondaire : ".$row_ListSecondaire['NumIDs'];
5. }
6. echo "apres boucle secondaire : ".$row_ListePrimaire['NumID'];
7. } while ($row_ListePrimaire = mysql_fetch_assoc($ListePrimaire));
|
$ListSecondaire est une ressource mysql
Mais à quel moment fais-tu ton $ListSecondaire = mysql_query($requete); ?
Car une fois que tu as parcouru tous les résultats de la requête, le pointeur ne se repositionne pas au début, donc si tu utilises la même ressource au second passage il ne trouvera plus rien.
|
|
| |
Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...
|
cilo
Modérateur
Que puis-je faire pour vous?
Messages : 7 196 Inscrit le 07/11/01
Ville : Brignoud
Non connecté
|
|
Posté le 25 juin 2004 - 12 h 09 m 04 s |
|
|
La requete s'effectue avant les boucles.
Donc si j'ai bien compris
il faut faire un reset($ListSecondaire) ???
1. do {
2. reset ($ListSecondaire) ;
3. echo "avant boucle secondaire : ".$row_ListePrimaire['NumID'];
4. while ($row_ListSecondaire = mysql_fetch_assoc($ListSecondaire)) {
5. echo "dans boucle secondaire : ".$row_ListSecondaire['NumIDs'];
6. }
7.
8. echo "apres boucle secondaire : ".$row_ListePrimaire['NumID'];
9. } while ($row_ListePrimaire = mysql_fetch_assoc($ListePrimaire));
|
|
| |
"Maintenant, on ne fait plus de camembert, on fabrique un truc rond et blanc qu'on appelle camenbert" M. Lepetit
|
Erel69
206 (¯`·.__[T3aM.L1b3rTe©]__.·´¯)
Messages : 19 449 Inscrit le 07/11/01
Ville : Lyon
Non connecté
|
|
Posté le 25 juin 2004 - 12 h 29 m 23 s |
|
|
Le mieux est de faire quelque chose du genre :
1. // mise en mémoire des résultats
2. $ListSecondaireArray = array();
3. while ($row_ListSecondaire = mysql_fetch_assoc($ListSecondaire))
4. {
5. $ListSecondaireArray[] = $row_ListSecondaire;
6. }
7.
8. // traitement
9. do
10. {
11. echo "avant boucle secondaire : ".$row_ListePrimaire['NumID'];
12. reset ($ListSecondaireArray);
13. foreach( $ListSecondaireArray as $row_ListSecondaire )
14. {
15. echo "dans boucle secondaire : ".$row_ListSecondaire['NumIDs'];
16. }
17.
18. echo "apres boucle secondaire : ".$row_ListePrimaire['NumID'];
19. } while ($row_ListePrimaire = mysql_fetch_assoc($ListePrimaire));
|
|
| |
Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...
|
cilo
Modérateur
Que puis-je faire pour vous?
Messages : 7 196 Inscrit le 07/11/01
Ville : Brignoud
Non connecté
|
|
Posté le 25 juin 2004 - 13 h 18 m 30 s |
|
|
Merci, je regarde ca ce soir!
|
|
| |
"Maintenant, on ne fait plus de camembert, on fabrique un truc rond et blanc qu'on appelle camenbert" M. Lepetit
|