Bonjour,
Je suis en train d'essayer d'écrire un programme pour un jeu.
Dans ce jeu, il y a des mobiles qui se déplacent sur des cases.
Les cases ont certaines caractéristiques définies dans une table nommée table_case, et la position des mobiles est inscrite dans la table qui regroupe les caractéristiques des mobiles, nommée table_mobile.
Le problème, c'est qu'une case ne doit pouvoir être occupée que par un seul mobile à la fois, le temps de déplacement d'une case à l'autre est fonction des caractéristiques de la case, etc...
La mise à jour des position de mobiles se fait mobile par mobile. L'ensemble des mobiles présents dans table_mobile sont sélectionnés tour à tour avec une boucle de type while(mysql fetch array), à l'intérieur de laquelle sont inscrites les actions nécessaires à la mise à jour.
Etant donné que le programme doit savoir quel est l'état (libre ou occupé) de la case sur laquelle souhaite aller chaque mobile, il faudrait une requête SQL suivie d'une autre boucle while(mysql fetch array) pour récupérer l'état de la case en question dans table_case. Hors, il me semble que les boucles imbriquées comme ça ne marche pas, à moins de mettre la boucle imbriquée dans un fichier séparé ensuite inclus avec "include".
Dans table_case, il y a un entrée par case, et 8 champs définissant les caractéristiques de la case. Je voudrais récupérer ces champs dans un array, qui serait créé avant la boucle de mise à jour des caractéristiques des mobiles, afin de ne pas avoir de boucles imbriquées.
mais plutôt avoir quelque chose comme ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 // En gros, je voudrais éviter ça: $reponse = mysql_query("SELECT * FROM table_mobile "); while ($donnees = mysql_fetch_array($reponse) ) { $case = $donnees['position']; $reponse = mysql_query("SELECT * FROM table_case WHERE numero='$case'"); while ($donnees2 = mysql_fetch_array($reponse) ) { $etat = $donnees2['etat']; //... //Code de mise à jour //... } }
pour résumer, je voudrais savoir comment on fait pour mettre l'ensemble du résultat d'une requête SQL dans un array.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 $reponse = mysql_query("SELECT * FROM table_case"); ... Création d'un array avec le résultat de la requête ... $reponse = mysql_query("SELECT * FROM table_mobile"); while ($donnees = mysql_fetch_array($reponse) ) { $case = $donnees['postion']; ... rechercher l'état de $case dans l'array constitué plus haut ... //... //Code de mise à jour //... }
Bonne nuit et merci d'avance pour vos réponses
Partager