18-12-2008, 11:43 PM
J'y arrive pas, désolé :pleure2:
J'essaie d'afficher la map de la ville ainsi:
J'essaie d'afficher la map de la ville ainsi:
Code PHP :
<?php
session_start();
$id = $_SESSION['id'];
require_once 'connexion.php';
$requete = mysql_query("SELECT posx, posy FROM membres WHERE carte='mapville' AND id = $id;");
$sql = mysql_fetch_assoc ($requete);
$posx = $sql['posx'];
$posy = $sql['posy'];
//RECHERCHE DE LA VILLE SELON POSITION JOUEUR
$recherche= mysql_query("SELECT id FROM ville WHERE posx= $posx AND posy= $posy;");
$req= mysql_fetch_assoc ($recherche);
$id= $req['id'];
var_dump($req);
//Définition de la map
$taille = 3;// ici 3 cases autour du joueur (soit une map de 7*7)
$x_debut=$posx-$taille;//3 cases a gauche du joueur
$x_fin=$posx+$taille;//3 cases a droite du joueur
$y_debut=$posy-$taille;//3 cases au dessus du joueur
$y_fin=$posy+$taille; //3 cases au dessous du joueur
//definition des bords de la map
$i=6;//1 cases avant debordement en haut et a gauche
$j=1;
$k=295;//1 cases avant debordement en bas et a droite
while ($i >=1 and $j<=3 and $k<=300){
if ($posx == $i) {$x_debut = $posx-$taille+$j;$x_fin = $x_fin+$j;}
if ($posy == $i) {$y_debut = $posy-$taille+$j;$y_fin = $y_fin+$j;}
if ($posx == $k) {$x_fin = $x_fin-$j;$x_debut = $x_debut-$j;}
if ($posy == $k) {$y_fin = $y_fin-$j;$y_debut = $y_debut-$j;}
$j++;
$i--;
$k++;
}
/*
Vérification de la présence des autres joueurs:
on va chercher les joueurs qui sont dans le perimetre défini precedement.
*/
$sq2 = 'SELECT vehicule_actuel, posx, posy FROM membres WHERE pause="NON" AND carte="mapville" AND posx between '.$x_debut.' and '.$x_fin.' AND posy between '.$y_debut.' and '.$y_fin.' ORDER BY posx DESC,posy DESC;';
$req = mysql_query($sq2) or die(mysql_error());
while ($data = mysql_fetch_array($req)) {
if (empty($TabMAP[$data['posx']][$data['posy']]))
$TabMAP[$data['posx']][$data['posy']] = $data['vehicule_actuel'];
}
mysql_free_result($req);
/* on va afficher les terrains de la map
*/
$affiche = mysql_query('SELECT image, posx, posy FROM mapville WHERE ville_id= '.$ville_id.' AND posx between '.$x_debut.' and '.$x_fin.' AND posy between '.$y_debut.' and '.$y_fin.' ORDER BY posx DESC,posy DESC;');
while ($data = mysql_fetch_assoc($affiche)) {
$TabMAPVILLE10[$data['posx']] [$data['posy']] [$data['ville_id']]= $data['image'];
}
mysql_free_result($affiche);
echo '<center><body background="image/fond.jpg" bgproperties="fixed">
<table border="1" cellspacing="0" cellpadding="0">'."\n";
echo '<tbody>'."\n";
//on affiche les positions x sur la premiere ligne
for($x=$x_debut;$x<=$x_fin;$x++)
//on affiche lignes par lignes la position y, les autres joueurs et les batiments
for ($y=$y_debut;$y<=$y_fin;$y++) {
// echo'<tr ><td align="center" valign="middle" height="60">-'.$y.'</td>'."\n";//affichage de la position
for($x=$x_debut;$x<=$x_fin;$x++) {// pour chaque lignes
if($x==$posx && $y==$posy)//si on est sur la position du joueur
echo '<td><center><img src='.$vehicule_actuel.'></center></td>';//on affiche l'avatar de votre perso
else
if(!empty($TabMAP[$x][$y]))//si on tombe sur un autre joueur
echo '<td><center><img src='.$TabMAP[$x][$y].'></center></td>';//on affiche l'avatar du joueur
else
if(!empty($TabMAPVILLE10[$x][$y]))//si on tombe sur un terrain
echo '<td><center><img src='.$TabMAPVILLE10[$x][$y].'></center></td>';//on affiche l'image du terrain
else
echo '<td><center><img src="./relief/blank.gif"></center></td>';//si il n'y a rien...
}
echo '</tr>';//on ferme la ligne et on passe a la ligne qui suit
}
echo '</tbody></table>';//on ferme la table
?>
Les images de la ville (qui sont en table "mapville" et se réfèrent à ville_id)
ne s'affichent pas et j'ai les messages erreur suivants:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /mnt/web4/40/58/51658858/htdocs/affichemapville.php on line 13
NULL
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /mnt/web4/40/58/51658858/htdocs/affichemapville.php on line 54
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /mnt/web4/40/58/51658858/htdocs/affichemapville.php on line 58
Pour info, le var_dump affiche la valeur NULL.