JeuWeb - Crée ton jeu par navigateur
[Résolu] Requete utilisable 1 seule fois ? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Résolu] Requete utilisable 1 seule fois ? (/showthread.php?tid=4125)



[Résolu] Requete utilisable 1 seule fois ? - MdE - 23-06-2009

Bonjour à tous, j'ai une petite question ^^

Donc voilà, dans mon jeu, j'ai une requête classique pour récupérer les noms des joueurs à un endroit précis (SELECT nom FROM perso WHERE position=X). Classique. Puis je fais une boucle pour afficher tout ça avec while(mysql_fetch_assoc...) (je simplifie pour aller à l'essentiel).

Sauf que j'ai besoin d'afficher plusieurs fois cette liste mais de manière différente. J'ai donc voulu faire un truc du genre $a=$b=SELECT etc... mais cela ne fonctionne pas. La seule solution que j'ai, c'est de faire plusieurs fois la requête. Je trouve ça un peu dommage et lourd.

Ne puis-je pas faire mieux ?

Je pensais à la limite faire une seule requête, puis je fais le boucle et là je mets dans différentes variables ce que je veux (genre une variable contiendra les différents noms avec un lien vers les fiches, et une autre variable contiendra la liste des <option> avec le nom des persos pour l'autre endroit)

Cette méthode est-elle meilleure ?

PS: Je suis sur du procédural


RE: [Requête] Utilisable 1 seule fois ? - Sephi-Chan - 23-06-2009

C'est plutôt simple, en fait.


$ressource = mysql_query($query);
$characters = array();
while($character = mysql_fetch_assoc($ressource)){
$characters[] = $character;
}

Ainsi, le tableau $characters contient ce que tu veux et tu peux le réutiliser sans soucis. Smile


Sephi-Chan


RE: [Requête] Utilisable 1 seule fois ? - NicoMSEvent - 23-06-2009

la solution de sephi-chan est intéressante, si le nombre de personne n'est pas trop élevé

en même temps, quand tu as lancé la requete une fois, elle est en cache, et la lancer une deuxieme fois demande bcp moins de ressources...


RE: [Requête] Utilisable 1 seule fois ? - nicodd - 23-06-2009

Sinon, en utilisant la fonction mysql_data_seek(), tu peux replacer le pointeur au début, et parcourir une seconde fois ton résultat...


RE: [Requête] Utilisable 1 seule fois ? - DragonMaster - 23-06-2009

(23-06-2009, 04:43 PM)nicodd a écrit : Sinon, en utilisant la fonction mysql_data_seek(), tu peux replacer le pointeur au début, et parcourir une seconde fois ton résultat...

+1

C'est ce que j'utilisais avant de passer au système de tableau (h)


RE: [Requête] Utilisable 1 seule fois ? - MdE - 23-06-2009

Merci pour vos réponses rapides. Je me doutais qu'il y avait une solution simple mais je ne trouvais pas ^^. Je vais prendre le méthode de Séphi je pense.


RE: [Résolu] Requete utilisable 1 seule fois ? - Argorate - 23-06-2009

Effectivement, je faisais comme Sephi, par contre je ne connaissais pas : mysql_data_seek()!

Très utile, très bon a savoir Wink