Bonjours, j'ai une page qui utilise beaucoup trop de ressources sql.
En effet j'ai 8 requêtes, qui d'après ce qu'on m'a dit, peuvent être réuni en une seule.
Mais je n'arrive pas à faire avec des jonctions.
Quelqu'un peut t'il me renseigner?
Merci
En effet j'ai 8 requêtes, qui d'après ce qu'on m'a dit, peuvent être réuni en une seule.
Mais je n'arrive pas à faire avec des jonctions.
Quelqu'un peut t'il me renseigner?
Merci
Code:
//Récupération élément décors.
$mapquery = doquery("SELECT longitude, latitude, pic, land FROM {{table}} WHERE longitude between $x_start and $x_end AND latitude between $y_start and $y_end ORDER BY longitude DESC,latitude DESC LIMIT 48", "map");
while ($maprow = mysql_fetch_assoc($mapquery)) {
if (empty($TabMAP1[$maprow['longitude']][$maprow['latitude']]))
$TabMAP1[$maprow['longitude']][$maprow['latitude']] = $maprow['pic'];
}
mysql_free_result($mapquery);
//Récupération élément clans.
$clanquery = doquery("SELECT pic, longitude, latitude FROM {{table}} WHERE longitude between $x_start and $x_end AND latitude between $y_start and $y_end ORDER BY longitude DESC,latitude DESC LIMIT 48", "clans_elements");
while ($clanrow = mysql_fetch_assoc($clanquery)) {
if (empty($TabMAP7[$clanrow['longitude']][$clanrow['latitude']]))
$TabMAP7[$clanrow['longitude']][$clanrow['latitude']] = $clanrow['pic'];
}
mysql_free_result($clanquery);
//Récupération élément villes.
$townquery = doquery("SELECT name, longitude, latitude FROM {{table}} WHERE longitude between $x_start and $x_end AND latitude between $y_start and $y_end ORDER BY longitude DESC,latitude DESC LIMIT 48", "towns");
while ($townrow = mysql_fetch_assoc($townquery)) {
if (empty($TabMAP2[$townrow['longitude']][$townrow['latitude']]))
$TabMAP2[$townrow['longitude']][$townrow['latitude']] = $townrow['name'];
}
mysql_free_result($townquery);
//Récupération élément points de téléportations.
$teleportationquery = doquery("SELECT name, longitude, latitude FROM {{table}} WHERE longitude between $x_start and $x_end AND latitude between $y_start and $y_end ORDER BY longitude DESC,latitude DESC LIMIT 48", "teleportations");
while ($teleportationrow = mysql_fetch_assoc($teleportationquery)) {
if (empty($TabMAP9[$teleportationrow['longitude']][$teleportationrow['latitude']]))
$TabMAP9[$teleportationrow['longitude']][$teleportationrow['latitude']] = $teleportationrow['name'];
}
mysql_free_result($teleportationquery);
//Récupération élément bureaux des colis.
$officequery = doquery("SELECT name, longitude, latitude FROM {{table}} WHERE longitude between $x_start and $x_end AND latitude between $y_start and $y_end ORDER BY longitude DESC,latitude DESC LIMIT 48", "packages_offices");
while ($officerow = mysql_fetch_assoc($officequery)) {
if (empty($TabMAP8[$officerow['longitude']][$officerow['latitude']]))
$TabMAP8[$officerow['longitude']][$officerow['latitude']] = $officerow['name'];
}
mysql_free_result($officequery);
//Récupération élément coffres.
$cofferquery = doquery("SELECT name, longitude, latitude FROM {{table}} WHERE longitude between $x_start and $x_end AND latitude between $y_start and $y_end ORDER BY longitude DESC,latitude DESC LIMIT 48", "coffers");
while ($cofferrow = mysql_fetch_assoc($cofferquery)) {
if (empty($TabMAP5[$cofferrow['longitude']][$cofferrow['latitude']]))
$TabMAP5[$cofferrow['longitude']][$cofferrow['latitude']] = $cofferrow['name'];
}
mysql_free_result($cofferquery);
//Récupération élément arènes.
$arenaquery = doquery("SELECT name, longitude, latitude FROM {{table}} WHERE longitude between $x_start and $x_end AND latitude between $y_start and $y_end ORDER BY longitude DESC,latitude DESC LIMIT 48", "arenas");
while ($arenarow = mysql_fetch_assoc($arenaquery)) {
if (empty($TabMAP6[$arenarow['longitude']][$arenarow['latitude']]))
$TabMAP6[$arenarow['longitude']][$arenarow['latitude']] = $arenarow['name'];
}
mysql_free_result($arenaquery);
//Recupération des autres joueurs
$playersquery = doquery("SELECT id, charname, avatar, longitude, latitude FROM {{table}} WHERE longitude between $x_start and $x_end AND latitude between $y_start and $y_end AND id!='$userrow[id]' AND UNIX_TIMESTAMP(onlinetime) >= '".(time()-120)."' AND (currentaction='En exploration' OR currentaction='En combat') ORDER BY longitude DESC,latitude DESC LIMIT 48", "users");
while ($playersrow = mysql_fetch_assoc($playersquery)) {
if (empty($TabMAP3[$playersrow['longitude']][$playersrow['latitude']]))
$TabMAP3[$playersrow['longitude']][$playersrow['latitude']] = $playersrow['avatar'];
$TabMAP4[$playersrow['longitude']][$playersrow['latitude']] = $playersrow['charname'];
}
mysql_free_result($playersquery);