03-09-2006, 06:52 PM
aller le voila tout frais et optimisé un poil, je sais pas pkoi je m'etait compliqué comme ca pour l'affichage de la map :wowowow:
Code PHP :
<?
/*
la table a creer:
CREATE TABLE `table_carte` (
`id` tinyint(10) NOT NULL default '0',
`pseudo` varchar(50) NOT NULL default '',
`position` tinyint(5) NOT NULL default '0',
`systeme` tinyint(5) NOT NULL default '0',
`galaxie` tinyint(5) NOT NULL default '0'
) TYPE=MyISAM;
INSERT INTO `table_carte` VALUES (1, 'test', 3, 2, 3);
*/
//connexion a la bdd classique
mysql_connect('*****','*****','*****') ;
mysql_select_db('*****');
// id du joueur. Peut etre recuperé via une session...
$id = 1;
// recuperation des positions sur la carte du joueur
$requete2 = mysql_query("SELECT galaxie, systeme, position FROM table_carte WHERE `id`=$id ") or die(mysql_error());
$var2 = mysql_fetch_array ($requete2);
$galaxie = $var2['galaxie'];
$systeme = $var2['systeme'];
$position = $var2['position'];
//Changement de vue
if (isset($_POST['galaxie_select']) and isset($_POST['systeme_select'])) // Si changement de vue
{
// si on a changé de vue, les coordonnee changent
$galaxie = $galaxie_select;
$systeme = $systeme_select;
}
else {
//sinon on garde les coordonnees du joueur
$galaxie = $galaxie;
$systeme = $systeme;
}
// Affichage de la barre de changement de galaxie et systeme
echo '<form action="carte.php" method="post">'."\n";
echo 'Galaxie : ';
echo '<select name="galaxie_select">'."\n";
// on affiche la selection du systeme, ici 10 pour le test
for($galaxie_select=1;$galaxie_select<=10;$galaxie_select++){
if ($galaxie_select == $galaxie){
$selected = 'selected';
}
else {
$selected = '';
}
echo '<option value="'.$galaxie_select.'"'.$selected.'>'.$galaxie_select.'</option>'."\n";
}
echo '</select>'."\n";
echo ' - Systeme : '."\n";
echo '<select name="systeme_select">'."\n";
// on affiche la selection du systeme, ici 200
for($systeme_select=1;$systeme_select<=200;$systeme_select++){
if ($systeme_select == $systeme){
$selected = 'selected';
}
else {
$selected = '';
}
echo '<option value="'.$systeme_select.'"'.$selected.'>'.$systeme_select.'</option>'."\n";
}
echo '</select>'."\n";
echo '<br><br>'."\n";
echo '<input type="submit" value="Changer de carte"></form>'."\n";
// fin de l'Affichage de la barre de changement de galaxie et systeme
//on va chercher les autres joueurs presents sur cette galaxie et ce systeme
$sql = mysql_query('SELECT pseudo, galaxie, systeme, position FROM table_carte WHERE galaxie='.$galaxie.' and systeme='.$systeme.' ORDER BY position DESC') or die(mysql_error());
while ($data = mysql_fetch_array($sql)) {
$TabMAP[$data['position']] = $data['position']; //je cree un tableau avec les positions
$TabMAP2[$data['position']] = $data['pseudo']; //je cree un tableau avec les pseudos
}
mysql_free_result($sql);
echo '<br><br><table width="300" border="1" cellspacing="0" cellpadding="0" align="center" height="300">'."\n";
$pos=1;
for($posx=1;$posx<=5;$posx++){
echo '<tr align="center" valign="middle" height="60">'."\n";
for($posy=1;$posy<=5;$posy++){
if ($pos == 13){
echo '<th align="center" valign="middle" width="60" height="60"><img src="soleil.gif" alt="soleil" height="60" width="60"></td>'."\n";
}
else
// si un autre joueur existe sur une position de la carte
if(!empty($TabMAP[$pos])){
//on affiche sa flotte
echo '<td align="center" valign="middle" width="60" height="60"><img src="planete.gif" alt='.$TabMAP2[$pos].' height="60" width="60"></td>'."\n";
}
else //sino
{
// on affiche rien (moi j'ai mis les autres positions pour le test.
echo '<td align="center" valign="middle" width="60" height="60">'.$pos.'</td>'."\n";
}
$pos++;
}
echo '</tr>'."\n";
}
echo '</table>'."\n"; // on ferme le tableau
mysql_close();
?>