Code : Tout sélectionner
SELECT x, y, img
FROM map
WHERE x > position_x_perso - 5
AND x < position_x_perso + 5
AND y > position_y_perso - 5
AND y < position_y_perso + 5
ORDER BY x, yCode : Tout sélectionner
boucle sur les x
boucle sur les y
afficher la case
fin boucle y
fin boucle x
Code : Tout sélectionner
SELECT x, y, img
FROM map
WHERE x > position_x_perso - 5
AND x < position_x_perso + 5
AND y > position_y_perso - 5
AND y < position_y_perso + 5
ORDER BY y, xCode : Tout sélectionner
echo début du tableau
boucle sur les y
echo début de ligne <tr>
boucle sur les x
echo la case : echo <td> contenu </td>
fin boucle x
echo fin de ligne </tr>
fin boucle y
echo fin du tableau
$liste = array();
while($r = mysql_fetch_assoc($req)){
$liste[$r['y']][$r['x']] = $r['img'];
}
// puis ensuite :
foreach($liste as $y => $t){
// ligne
foreach($t as $x =< $img){
//cellule
}
//ligne fin
}
voilà mon pseudo code :donc, si tu pouvais m'éclairer un peuau passage, j'ai hâte ..
![]()
$r = mysql_fetch_assoc($req);
// on enregistre la ligne en référence
$y_ref = $r['y'];
// affichage debut tableau : TABLE
// ouverture de la ligne TR
// ecriture de la premiere case
// TD ... /TD
while( $r = mysql_fetch_assoc($req) )
{
if( $r['y'] == $y_ref )
{ // on est sur la même ligne
// afficher la case : TD ... /TD
}else{
// passer à la ligne suivante :
// fermer la ligne et en ouvrir une nouvelle /TR TR
// afficher la case : TD ... / TD
// enregistrer la nouvelle ligne en référence
$y_ref = $r['y'];
}
}
// on ferme la ligne /TR
// on ferme le tableau /TABLE
A+Code : Tout sélectionner
echo début du tableau
boucle sur les y
echo début de ligne <tr>
boucle sur les x
echo la case : echo <td> contenu </td>
fin boucle x
echo fin de ligne </tr>
fin boucle y
echo fin du tableau tu n'aurais pas un problème dans ton while ? mysql_fetch_assoc ayant été préalablement déclenché, il va te manquer une ligne ... ? à moins que tu doubles tes boucles ...voilà mon pseudo code :A+$r = mysql_fetch_assoc($req); // on enregistre la ligne en référence $y_ref = $r['y']; // affichage debut tableau : TABLE // ouverture de la ligne TR // ecriture de la premiere case // TD ... /TD while( $r = mysql_fetch_assoc($req) ) { if( $r['y'] == $y_ref ) { // on est sur la même ligne // afficher la case : TD ... /TD }else{ // passer à la ligne suivante : // fermer la ligne et en ouvrir une nouvelle /TR TR // afficher la case : TD ... / TD // enregistrer la nouvelle ligne en référence $y_ref = $r['y']; } } // on ferme la ligne /TR // on ferme le tableau /TABLE
Pascal
// on enregistre une ligne de référence bidon, via une valeur impossible
$y_ref = '*';
// affichage debut tableau : TABLE
// ouverture de la ligne TR
// ecriture de la premiere case
// TD ... /TD
while( $r = mysql_fetch_assoc($req) )
{
if( $r['y'] == $y_ref )
{ // on est sur la même ligne
// afficher la case : TD ... /TD
}else{
// passer à la ligne suivante :
// si $y_ref <> '*'
// alors fermer la ligne /TR
// fin si
// et en ouvrir une nouvelle TR
// afficher la case : TD ... / TD
// enregistrer la nouvelle ligne en référence
$y_ref = $r['y'];
}
}
// on ferme la dernière ligne /TR
// on ferme le tableau /TABLE
Pour les perfs, à tester, ça dépend de la taille du tableau. Un benchmark te donnera la réponse