JeuWeb (JeuPHP) - Crée ton jeu par navigateur

Version complète : Boucle dans boucle dans...boucle
Vous consultez actuellement la version basse qualité d'un document. Voir la version complète avec le bon formatage.
Pages : 1 2
Bonjour à tous.

Pour une partie simulation de mon jeu j'ai recours à une page avec 3 boucles imbriquées.

La première est une boucle toute simple (plus complexe que sur le schéma) qui sert de compteur pour la deuxième. La deuxième dépend donc de la première comme on peut le voir dans le schéma (div=$i).
Toutes les variables (ou presque) utilisées dans la condition de la deuxième requete sont définies avant la première boucle et contiennent bien quelque chose (déjà testé 12fois)

Et la troisième récupère les joueurs concernés.

J'ai essayé de simplifier avec un schéma.
[Image: 1222262508_sagadeboucle.png]

Mais voilà, à partir d'un moment de la simulation il doit y avoir plusieurs enregistrements possibles pour la deuxième boucle. Cependant quoiqu'il arrive il n'en sélectionnera qu'une.

J'ai vérifié en coupant la simulation, les enregistrements sont présents dans la base de donnée.
J'ai tout testé dans la base de donnée concernant les enregistrements. Mais le problème vient uniquement de là, un seul enregistrement est prit meme si je met une limite de 2 par exemple.


La deuxième boucle est la boucle des groupes. Les groupes sont numérotés comme suit:
1 ; 0 ; -1 ... jusqu'à moins l'infini 34
J'ai changé la requete en mettant ASC et là j'obtient plus 1 durant la simulation mais 0 (dans une partie ou il y a seulement deux groupes) en mettant DESC j'obtiens logiquement 1 vu que c'est le groupe le plus haut possible.

Chaque numéro est attribué une seule fois. Aucun groupe ne s'appelle pareil.

Donc tout ça pour dire que j'ai fait tous les tests que je suis capable de faire. Et il y a plusieurs résultats correspondant à cette requete dans la bdd.

IL n'en récupère qu'un et je vois pas pourquoi c'est pourquoi je fais appel à votre aide.

La page fait 2000 lignes de php c'est pourquoi j'ai résumé dans un schéma.



Merci beaucoup d'avance, r0seBa
2000 lignes ???

Hum, il me semble que tu pourrais faire des efforts pour passer tes boucles dans des fonctions. Ainsi fait, tu pourrais tester la dernière boucle jusqu'à temps qu'elle fonctionne, puis l'avant dernière, jusqu'à la première.

SI pour un jeu de donnée ça fonctionne pas, tu reviens à la boucle précédente et tu teste avec ce jeu de donnée.
Je pense que tu as bien fais de ne pas coller ton code de 2000 lignes mais là, je pense que tu as coupé trop d'information pour qu'on puisse t'aider.

Kéké
PS : à quoi est égale la variable : $numb_total.
PS : n'hésite pas à faire un echo '<br>'.$requete.'<br>'; pour lire ta requête SQL. Parfois on se rend compte que y'a une variable qui n'est pas initialisée.
Merci d'avoir pris le temps de me répondre.

$numb_total ==>numéro de km total d'une course donc autour de 200. et elle est initialisée.

Je vais faire ton echo $requete en ésperant voir une variable qui marche pas.

Mais sinon j'ai pas trop saisi ton histoire de jeu de donnée 6
echo une de tes requêtes et utilise la dans phpMyAdmin. Tu verras ainsi le nombre de lignes retournées.
A en voir ton schéma, a priori ta requête ne récupère qu'une seule ligne.
Pourquoi elle ne récupèrerais qu'une seule ligne?
Ben parce que sinon elle bouclerait !
Ah, j'ai cru que tu te basais sur la requete et l'organisation de mon code pour dire ça, désolé.

Donc j'ai fait ça :

Code PHP :
                $testy mysql_query("SELECT * FROM group_pro WHERE idc=$idc AND group_pro.etape=$etape AND group_pro.div=$dibi AND group_pro.time=$kam AND group_pro.km<$numb_total ORDER BY group_pro.titre ASC LIMIT 0,2000")or die(mysql_error());
                while(
$boucle=mysql_fetch_array($testy))
                {
//On va gérer la vitesse de chaque groupe
                
                
echo '<br />'.$boucle['titre'];
                if(
$boucle['titre'] == 0)
                {
                
//exit();
                
echo $testy;
                exit();
                } 

$testy correspondant à la deuxième boucle. J'ai mis une condition toute bete car comme 1 est le groupe par défaut, si 0 est le plus petit ça veut dire qu'il y en a deux enfin bref.

J'obtiens:
Resource id #9

ya un problème nan?
Et bien, ça correspond à une ressource, ce qui est normal 34

Et mysql_numrows($testy) ?
En rajoutant
Code PHP :
$test mysql_num_rows($testy);
echo 
$test

J'obtiens "2" pour $test. Je ne suis donc pas fou il y a plusieurs enregistrements mais pourquoi il n'en prend qu'un. Peut etre est-ce du à l'organisation de ma page?
Je suppose que le exit() quitte ta boucle après le premier enregistrement 34
Pages : 1 2
URLs de référence