JeuWeb - Crée ton jeu par navigateur
[Carte] Système et galaxie - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Carte] Système et galaxie (/showthread.php?tid=29)

Pages : 1 2 3 4 5 6 7 8


RE: Une map 5*5 : methode avec systeme et galaxie - Ssin - 02-09-2006

Je parlais du concaténage qui ralentit Confusediffle:


RE: Une map 5*5 : methode avec systeme et galaxie - max - 02-09-2006

bonjour, je suis "l'associé" de jo (celui qui vous a expliqué précédament notre problème)
je vais commencer par le début en détaillant tout bien:
j'ai tout d'abord créé une table membre contenant 2 champ:
- un champ id en auto_increment
- un champ pseudo

j'ai ensuite créé une table carte contenant 4 champ:
-pseudo
-galaxie
-systeme
-position

ces 2 tables s'apellent respectivement table_membre et table_carte. (j'ai pris les memes noms que dans le code! et oui je suis flemard! lol)

notre code est celui ci:

Code PHP :
<?php
session_start
();
// j'ai volontairement mis des xxxxx! lol
mysql_connect("xxxxxxx","xxxxxx", "xxxxxxx");
mysql_select_db("xxxxxx");

$pseudo_membre = $_SESSION['pseudo'];
$requete = mysql_query("SELECT * FROM table_membre WHERE `pseudo`='$pseudo_membre'") or die(mysql_error());
$var = mysql_fetch_array ($requete);

$id = $var['id'];
$pseudo = $var['pseudo'];

// jusqu'ici, c'est comme d'hab, on viens chercher les
// informations du joueur.

// recuperation des positions sur la carte du joueur
$requete2 = mysql_query("SELECT * FROM table_carte WHERE `pseudo`='$pseudo_membre'") 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 cangement 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">';
echo
'Galaxie : ';
echo
'<select name="galaxie_select">';
// 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>';
}
echo
'</select>';

echo
' - Systeme : ';
echo
'<select name="systeme_select">';
// 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>';
}
echo
'</select>';
echo
'<br><br>';
echo
'<input type="submit" value="Changer de carte"></form>';
// fin de l'Affichage de la barre de changement de galaxie et systeme



//depart de la carte
echo '<br><br><table width="500" border="1" cellspacing="0" cellpadding="0" align="center" height="500">';
echo
'<tr align="center" valign="middle" height="100">';//premiere ligne de la table

//on va chercher les autres joueurs presents sur cette galaxie et ce systeme
$sql = mysql_query("SELECT * FROM table_carte WHERE galaxie ='".$galaxie."' and systeme ='".$systeme."' ORDER BY position DESC") or die(mysql_error());


while (
$data = mysql_fetch_array($sql)) {
if (empty(
$TabMAP[$data['position']]))
$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);

for(
$pos=1;$pos<=25;$pos++){ // on definit la taille de la carte - ici 25 cases

//*****Gestion des fins de lignes*****
if ($pos == 5 or $pos == 10 or $pos == 15 or $pos == 20){
// si on arrive en fin de ligne
//on ferme la ligne et on va a la ligne suivante
$finligne = '</tr><tr align="center" valign="middle" height="100">';
}
elseif (
$pos == 25){
// si on arrive en fin de tableau
//on ferme le tableau
$finligne = '</tr>';
}
//sinon
else
{
//on reste sur la meme ligne
$finligne = '';
}
//*****fin de la Gestion des fins de lignes*****

// si case 13 (centre de la carte), on affiche le soleil
if ($pos == 13){
echo
'<th align="center" valign="middle" width="120" height="120"><img src="soleil.jpg" alt="soleil" height="120" width="120"></th>'.$finligne;
}
else
// si un autre joueur existe sur une position de la carte
if(!empty($TabMAP[$pos])){
//on affiche sa flotte
echo '<th align="center" valign="middle" width="100" height="100"><img src="planete.jpg" alt='.$TabMAP2[$pos].' height="100" width="100"></th>'.$finligne;
}
else
//sino
{
// on affiche rien (moi j'ai mis les autres positions pour le test. suffit de faire ctrl+a pour voir apparaitre les positions
echo '<th align="center" valign="middle" width="100" height="100">'.$pos.'</th>'.$finligne;
}
}
echo
'</table>'; // on ferme le tableau

mysql_close();
?>
sur mes 2 tables j'ai créé quelques pseudo avec leurs positions pour tester
mais rien ne s'affiche dans les cases... ni image de planète, ni pseudo, il y a juste dans les cases leurs numéros de position
le résultat est visible a l'adresse http://soleilguerre.ifrance.com/ en allant dans le menu galaxie (je vous rassur le nom n'est pas soleilguerre! lool ce n'es qu'une page test!)

s'il y a un point que vous ne comprenez pas, demandez moi! (a moi ou a jo)
j'espère que vous pourez nous aider! et merci

ps: surtout n'imaginez pas qu'on est deux gros flemards qui n'ont fait que copier coller le code et qui veulent des expliquation car je peu vous jurer qu'on est dessus a chercher depuis une journée! hier soir on a été 3h de suite dessus a galérer sans succes avant d'enfin vous demander.)


RE: Une map 5*5 : methode avec systeme et galaxie - Ssin - 02-09-2006

Tu n'a pas dis si notre code marchait Wink


RE: Une map 5*5 : methode avec systeme et galaxie - alfanor - 02-09-2006

Et il faudrait que vous appreniez à utiliser les balises php lorsque vous mettez du code dans votre message, car noir sur blanc c'est illisible (ou bien faut y passer une heure à part si l'on fait copier/coller dans un éditeur de texte qui colore la syntaxe.)


RE: Une map 5*5 : methode avec systeme et galaxie - Ssin - 02-09-2006

Dans ton jeu, le menu Galaxie m'affiche une page normal oO


RE: Une map 5*5 : methode avec systeme et galaxie - max - 02-09-2006

une page normal? c a dire?
moi je veut dire que le but c'est que dans les cases, au lieu d'avoir seulement les numero ben y faudrais aussi qu'on puisse voir les pseudo et ca j'y arrive pas...

ps: comment on colorie les balises php quand on post sur le forum?


RE: Une map 5*5 : methode avec systeme et galaxie - Ssin - 02-09-2006

Tu clique la dessus : [Image: php.gif]


RE: Une map 5*5 : methode avec systeme et galaxie - jo_link_noir - 02-09-2006

j'ai recopier ce que vous m'aviez passer, ça n'a pas marcher, j'ai éssayer de motifier, ça n'a pas encore marcher...

le gros problème, c'est quand ça n'affiche pas d'erreur. Normalement, 2 planètes doivent apparaître mais ça affiche toujours des numéros.

je doit m'absente toute l'après midi

bonne fin de journée


RE: Une map 5*5 : methode avec systeme et galaxie - Ssin - 02-09-2006

Si je je peut te donner un conseil, quand une variable n'affiche rien, fait des echos des variables de ton script, ca te prend 5 mins et ca permet de voir quelles variables marchent, et lesquelles ne marchent pas.

Apres, tu regarde ou la variable qui marche pas est définie et généralement, tu trouve ton problème Wink

Essaye voire, ca si ca n'affiche rien, c'est que sa ne séléctionne rien dans ta BDD Wink


RE: Une map 5*5 : methode avec systeme et galaxie - max - 02-09-2006

pour ne pas prendre trop de place je ne copie le code qu'a partir de ca:

Code PHP :
<?php
$id
= $var['id'];
$pseudo = $var['pseudo'];

// jusqu'ici, c'est comme d'hab, on viens chercher les
// informations du joueur.

// recuperation des positions sur la carte du joueur
$requete2 = mysql_query("SELECT * FROM table_carte WHERE `pseudo`='$pseudo_membre'") or die(mysql_error());
$var2 = mysql_fetch_array ($requete2);
$galaxie = $var2['galaxie'];
$systeme = $var2['systeme'];
$position = $var2['position'];

// en dessous j'ai ajouté le code pour afficher les valeurs des variable

echo"$pseudo";
echo
"$galaxie";
echo
"$systeme";
echo
"$position";
?>




mais ca ne m'affiche rien.....
ca doit etre un problème sur la base de donnée mais je ne vois pas du tout d'ou ca peut venir