JeuWeb - Crée ton jeu par navigateur
Optimisation des requêtes pour l'affichage d'une carte - 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 : Optimisation des requêtes pour l'affichage d'une carte (/showthread.php?tid=407)



Optimisation des requêtes pour l'affichage d'une carte - X-ZoD - 08-11-2006

j'affiche une map seulement cette map contient differents elements dispersees dansdifferentes tables ce qui fait que je dois faires des appele sql a chaque cas de la map pour verifier quel objet est a afficher

je me retrouve avec une boucle while poru afficher la map et avec ce code a chaque case
Citation : $sqlUsers = mysql_query("select matricule,avatar,x,y,login,zircon from THD_users where x='$x' and y='$y' and localisation='".$dataUser['localisation']."'");
$sqlVaisseaux = mysql_query("select vaisseau,immatriculation,x,y from THD_vaisseaux where x='$x' and y='$y' and localisation='".$dataUser['localisation']."'");
$sqlMagasins = mysql_query("select id from THD_magasins where x='$x' and y='$y' and localisation='".$dataUser['localisation']."'");
$sqlMineraies = mysql_query("select id,valeur from THD_mineraies where x='$x' and y='$y' and localisation='".$dataUser['localisation']."'");
$sqlTerrains = mysql_query("select nom from THD_terrains where x='$x' and y='$y' and localisation='".$dataUser['localisation']."'");
$sqlPersonnel = mysql_query("select id,type from THD_personnel where x='$x' and y='$y' and localisation='".$dataUser['localisation']."'");

ce que je trouve totalement inconcevable....

quelqu'un aurait il une solution ?


RE: optimisation requetes poru affichage map - X-ZoD - 08-11-2006

oups je viende trouver ma reponse je pense
http://www.jeuweb.org/board/showthread.php?tid=39

je fais mes test et je vous dis si c'est bon

rien ne vous empeche de proposer vos idee malgre tout


RE: optimisation requetes poru affichage map - gtsoul - 08-11-2006

les mêmes requetes mais globales sur la map avec un order by x,y
tu places ensuite tes objets en position:absolute grâce au x et au y retournés par la requete

$sqlUsers = $bd->query("select matricule,avatar,x,y,login,zircon from THD_users where localisation='".$dataUser['localisation']."' order by x,y");

Code PHP :
<?php 
while($User = $sqlUsers->fetch_row)
{
echo(
'<div style="position:absolute;left:'.$User['x'].'px;"top:'.$User['y'].'px;"><img src="perso1.jpg"/></div>');

}

Si c'est pas déjà proposé, cela peut faire l'objet d'un tuto. J'ai recemment fait un radar type avp avec.
temps de chargement : 16ms (la page entière fait 0.02s)


RE: optimisation requetes poru affichage map - X-ZoD - 08-11-2006

bon bha en fait jai teste la versino de carlou... ma carte ne prend plus que moins d'une seconde pour safficher malgré le fait qu'elle fait appel aux 6 tables diferentes ^^