Ce qui est long dans ton affichage, ce sont les requêtes répétées à la BD...
Essaie plutôt ceci:
Essaie plutôt ceci:
Code PHP :
<?php
$latmax = $infosperso['latitude'] + 3;
$longmax = $infosperso['longitude'] + 5;
$latmin = $infosperso['latitude'] - 3;
$longmin = $infosperso['longitude'] - 5;
$latitude = $latmax;
$joueurs_sql = doquery("SELECT avatar,latitude,longitude FROM {{table}} ORDER BY longitude, latitude", "users");
$joueurs = mysql_fetch_array($joueurs_sql);
$lat_BD=$joueurs['latitude'];
$lon_BD=$joueurs['longitude'];
$page .='<table>';
while ($latitude >= $latmin ) {
$page .='<tr>';
$longitude = $longmin;
while ($longitude <= $longmax) {
if (($longitude==$lon_BD) &&($latitude==$lat_BD)){
$page .='<td><img src="images/avatars/carte/'.$joueurs['avatar'].'.gif" alt=""></td>';
if ($joueurs = mysql_fetch_array($joueurs_sql)) {
$lat_BD=$joueurs['latitude'];
$lon_BD=$joueurs['longitude'];
}
}else {
$page .='<td style="width:49px; height:49px;"></td>';
}
$longitude++;
}
$page .='</tr>';
$latitude--;
}
$page .='</table>';
?>
si ce n'est pas dans le bon ordre, inverse les deux champs du ORDER BY