JeuWeb - Crée ton jeu par navigateur
De deux choses l'une... une seule fois ! - 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 : De deux choses l'une... une seule fois ! (/showthread.php?tid=673)



De deux choses l'une... une seule fois ! - Pyl - 22-01-2007

J'ai deux petit soucis techniques à vous soumettre Smile
Je commencerais par un petit probleme d'affichage que je vous laisse regarder ici :

[Image: n85dl81ms8clnvn77llp9sliny.jpg]

Ce que je ne comprend pas, c'est pourquoi mes deux paranthéses se trouve aussi là ou il n'y a pas de nom Confused
Si-desssous le script qui correspond

Code PHP :
<?php 
case '0':
// cible est un perso
if($id_cible!='0')
{
$req2=mysql_query("SELECT joueur_pseudo FROM membres WHERE id='$id_cible'");
$req3=mysql_query("SELECT camp FROM membres WHERE id='$id_cible'");
$perso_cible =mysql_fetch_array($req2);
$camp_cible =mysql_fetch_array($req3);
$nom_cible=$perso_cible['joueur_pseudo'];
$camp=$camp_cible['camp'];
$cible.='<option value="perso@@@'.$id_cible.'">'.$nom_cible.' ( '.$camp.' )</option>';
}
break;
}
}
$cible.='</select><br><br><input type="submit" value="attaquer">';
$cible.='</form>';
echo
'<center>'.$cible.'</center>';



RE: De deux choses l'une... une seule fois ! - Pyl - 22-01-2007

Deuxieme probleme Smile
J'ai fait séparé pour simplifier la chose..
En faite le deuxieme est sur le design... Quand on est pas connecté, no soucis...
par contre une fois connecté y a un soucis techniques Confused

http://grandeguerre.keogratuit.com/index.php

Voila quand vous êtes pas connecté, mais quand vous êtes connectés... Hormis sur la page jouer... voila ce qui se passe
Page jouer : http://www.bulma-animation.org/u/p/7/sx0ggajzhzefxatk53wg51vcms.jpg
Autre que jouer : http://www.bulma-animation.org/u/p/7/1s01t37wwurdlwl582ojuz5ehn.jpg

Et voila le script qui gére l'apparation des divers liens

Code PHP :
<? 
session_start
();
include(
'reglage.php');
include(
'bdd.php');

if(empty(
$_SESSION['connection']))
{
echo
'</td></td>
<td valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
<!--DWLayoutTable--><tr>
<td width="197" height="49" valign="top" class="RD"><a href="page.index.php?page=6">Autres sites</a></td></tr><tr>
<td height="66" valign="top" class="RDvide">Partenaires</td></tr><tr>
<td height="58" valign="top" class="RD"><a href="#">votre lien ici</a></td></tr><tr>
<td height="65" valign="top" class="RD"><a href="#">votre lien ici</a></td></tr><tr>
<td height="62" valign="top" class="RD"><a href="#">votre lien ici</a></td></tr><tr>
<td height="65" valign="top" class="RDvide"></td></tr><tr>
<td height="313" valign="top" class="RDimage"><p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p></td>
</tr>'
;
}
else
{

$sql=mysql_query("SELECT xp,pv,pv_max,moral,moral_max FROM membres WHERE id='$id' ");
$sql=mysql_fetch_array($sql);
$grade_joueur =grade($id);
echo
'<td valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
<!--DWLayoutTable--><tr>
<td width="197" height="49" valign="top" class="RD"><a href="page.index.php?page=6">Autres sites</a></td></tr><tr>
<td height="66" valign="top" class="RDvide">Caractéristiques</td></tr><tr>
<td height="58" valign="top" class="RD"><font color=white>Vous avez <i>'
.$sql['pv'].' PV/'.$sql['pv_max'].' PV</i></font></td></tr><tr>
<td height="65" valign="top" class="RD"><font color=white>Votre moral est de <i>'
.$sql['moral'].'/'.$sql['moral_max'].'</td></tr><tr>
<td height="62" valign="top" class="RD"><font color=white>Vous avez <i>'
.$sql['xp'].'</i> Xp\'s</td></tr><tr>
<td height="62" valign="top" class="RD"><font color=white>Grade <i>'
.$grade_joueur.'</i></td></tr><tr>
<td height="62" valign="top" class="RD"><font color=white><a href="messagerie.php?az=2">Messagerie</a></td></tr><tr>
<td height="62" valign="top" class="RD"><font color=white><a href="moncamp.php">Mon camp</a></td></tr><tr>
<td height="65" valign="top" class="RDvide"></td></tr><tr>
<td height="313" valign="top" class="RDimage"><p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p></td>
</tr>'
;
}
echo
'
<tr>
<td height="24" valign="top"><img src="images/basRD.jpg" alt="" width="197" height="24"></td>
</tr>

</table></td>
</tr>
<tr>
<td height="1"></td>
<td width="253"></td>
<td width="253"></td>
<td></td>
</tr>
</table>
</body>
</html>'
;
?>



RE: De deux choses l'une... une seule fois ! - pascal - 22-01-2007

à mon avis, il manque une partie de ton code.

allez, je fais le devin:
le switch est dans une boucle, on va dire une boucle while ou for, et il passe par un cas où les données sont vide oubien par un autre cas, décrit dans le switch via un case.

mets le début de ton code stp!

A+

Pascal


RE: De deux choses l'une... une seule fois ! - Pyl - 22-01-2007

Du code concernant le premier sujet ? Smile

Code PHP :
<?
include("bdd.php");
@
session_start();
$id=$_SESSION['id'];
$perso=$_SESSION['perso'];
$req=mysql_query("SELECT arme,vision,attaque FROM membres WHERE id='$id'");
$perso=mysql_fetch_array($req);
$id_arme=$perso['arme'];
$vision=$perso['vision'];
$attaque=$perso['attaque'];
$req=mysql_query("SELECT distance FROM armes WHERE id='$id_arme'");
$armes =mysql_fetch_array($req);
$distance=$armes['distance'];
if(
$vision<$distance) $distance=$vision;
$sql="SELECT * FROM map WHERE perso='$id'";
$req = mysql_query($sql) or die(mysql_error());
$coord = mysql_fetch_array($req);
$X = $coord['X'];
$Y = $coord['Y'];
$Xmin = $X - $distance;
$Xmax = $X + $distance;
$Ymin = $Y - $distance;
$Ymax = $Y + $distance;
$sql1 = "SELECT * FROM map WHERE (Y BETWEEN '$Ymin' AND '$Ymax') && (X BETWEEN '$Xmin' AND '$Xmax') && ((bat!='0' AND idbat!='0')||(perso!='0' AND perso!='$id'))";
$req1 = mysql_query($sql1) or die(mysql_error());
$nbcible =mysql_fetch_row($sql1);
$retour = mysql_query("SELECT COUNT(*) AS nbre_entrees FROM map WHERE (Y BETWEEN '$Ymin' AND '$Ymax') && (X BETWEEN '$Xmin' AND '$Xmax') && ((bat!='0' AND idbat!='0')||(perso!='0' AND perso!='$id'))");
$donnees = mysql_fetch_array($retour);
if(
$attaque!='0')
{
if(
$donnees['nbre_entrees']!='0')
{
$cible='';
$cible.='<form action="attaquer.php" method="post">';
//selection de la cible
$cible.='<select name="cible">';
$cible.='<option value="nocible"></option>';
//echo'<option value=""></option>';
while($data = mysql_fetch_array($req1))
{
$X=$data['X'];
$Y=$data['Y'];
$idbat=$data['idbat'];
$id_cible=$data['perso'];
switch (
$idbat)
{
case
'0':
// cible est un perso
if($id_cible!='0')
{
$req2=mysql_query("SELECT joueur_pseudo FROM membres WHERE id='$id_cible'");
$req3=mysql_query("SELECT camp FROM membres WHERE id='$id_cible'");
$perso_cible =mysql_fetch_array($req2);
$camp_cible =mysql_fetch_array($req3);
$nom_cible=$perso_cible['joueur_pseudo'];
$camp=$camp_cible['camp'];
$cible.='<option value="perso@@@'.$id_cible.'">'.$nom_cible.' ( '.$camp.' )</option>';
}
break;
}
}
$cible.='</select><br><br><input type="submit" value="attaquer">';
$cible.='</form>';
echo
'<center>'.$cible.'</center>';
}
else
{
echo
'<center><br><font color=white></i>Il n\'y a personne &agrave; attaquer.</font></i></center>';
}
}
else
{
echo
'<center><font color=white><br>Vous n\'avez plus d\'attaque.</font></center>';
}
?>

Le voila tout en entier Wink
Ne dite rien, je sais que c'est le bordel dans mon script mais chut :p

Et aussi, concernant les deux requetes qui se suivent, je vous explique avant qu'ont me dise de ne faire qu'une... quand j'en fais qu'une ça marche pas ^^
Va savoir pourquoi ^^


RE: De deux choses l'une... une seule fois ! - X-ZoD - 22-01-2007

je passe jsute pour dire que je trouve tres bien davoir mis le probleme sou sforme d'image afin de mieu illustre ce que tu voudrais et daporter un peu plus de couleurs au post

franchement bravo jte met un petit plus poru ca ca fait plaisir Smile


RE: De deux choses l'une... une seule fois ! - Pyl - 22-01-2007

Merci c'est trop gentil :amoureux2:


RE: De deux choses l'une... une seule fois ! - pascal - 22-01-2007

c'est un peu du paté ton code, on va regarder pour optimiser un peu...


alors les 2 requêtes: les tables et les conditions sont les mêmes, donc on va essayer avec une seule requête:
avant:
Code PHP :
<?php 
if($id_cible!='0')
{
$req2=mysql_query("SELECT joueur_pseudo FROM membres WHERE id='$id_cible'");
$req3=mysql_query("SELECT camp FROM membres WHERE id='$id_cible'");
$perso_cible =mysql_fetch_array($req2);
$camp_cible =mysql_fetch_array($req3);
$nom_cible=$perso_cible['joueur_pseudo'];
$camp=$camp_cible['camp'];
$cible.='<option value="perso@@@'.$id_cible.'">'.$nom_cible.' ( '.$camp.' )</option>';
}
apres:
Code PHP :
<?php 
if($id_cible!='0')
{
// une requete qui renvoie les 2 champs
$req2=mysql_query("SELECT joueur_pseudo, camp FROM membres WHERE id='$id_cible'");
// le resultat dans un tableau
$data_cible = mysql_fetch_array($req2);
$nom_cible = $data_cible['joueur_pseudo'];
$camp = $data_cible['camp'];
$cible.='<option value="perso@@@'.$id_cible.'">'.$nom_cible.' ( '.$camp.' )</option>';
}

pour le bug, vérifie les données via les requetes dans phpmyadmin: il y a peut être un enregistrement sans libellés pour joueur_pseudo et camp.

pour le début du code, essaie de voir comment tu pourrais regrouper les requêtes, quel est le lien entre les données.

Bons débuggage & optimisation!

A+

Pascal


RE: De deux choses l'une... une seule fois ! - Pyl - 22-01-2007

Merci Merci

En effet il y a un enregistrement sans libellé pour Camp...
Sauf que cela est logique car le joueur ne choisis pas son camp à l'inscription mais après :ninga:

Mais après un test rapide, même si se champ est remplie le bug persiste


RE: De deux choses l'une... une seule fois ! - Sephi-Chan - 22-01-2007

As tu essayé en renseignant la contrainte NOT NULL ?


Sephi-Chan


RE: De deux choses l'une... une seule fois ! - Pyl - 23-01-2007

Merci de votre aide mais cela a disparu Smile
Je sais pas si c'est le fait que je puisse attaquer plusieurs joueurs...
Bref, maintenant j'aimerais savoir si quelqu'un à une réponse à mon deuxieme probleme Smile


Pyl a écrit :Deuxieme probleme Smile
J'ai fait séparé pour simplifier la chose..
En faite le deuxieme est sur le design... Quand on est pas connecté, no soucis...
par contre une fois connecté y a un soucis techniques Confused

http://grandeguerre.keogratuit.com/index.php

Voila quand vous êtes pas connecté, mais quand vous êtes connectés... Hormis sur la page jouer... voila ce qui se passe
Page jouer : http://www.bulma-animation.org/u/p/7/sx0ggajzhzefxatk53wg51vcms.jpg
Autre que jouer : http://www.bulma-animation.org/u/p/7/1s01t37wwurdlwl582ojuz5ehn.jpg

Et voila le script qui gére l'apparation des divers liens

Code PHP :
<? 
session_start
();
include(
'reglage.php');
include(
'bdd.php');

if(empty(
$_SESSION['connection']))
{
echo
'</td></td>
<td valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
<!--DWLayoutTable--><tr>
<td width="197" height="49" valign="top" class="RD"><a href="page.index.php?page=6">Autres sites</a></td></tr><tr>
<td height="66" valign="top" class="RDvide">Partenaires</td></tr><tr>
<td height="58" valign="top" class="RD"><a href="#">votre lien ici</a></td></tr><tr>
<td height="65" valign="top" class="RD"><a href="#">votre lien ici</a></td></tr><tr>
<td height="62" valign="top" class="RD"><a href="#">votre lien ici</a></td></tr><tr>
<td height="65" valign="top" class="RDvide"></td></tr><tr>
<td height="313" valign="top" class="RDimage"><p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p></td>
</tr>'
;
}
else
{

$sql=mysql_query("SELECT xp,pv,pv_max,moral,moral_max FROM membres WHERE id='$id' ");
$sql=mysql_fetch_array($sql);
$grade_joueur =grade($id);
echo
'<td valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
<!--DWLayoutTable--><tr>
<td width="197" height="49" valign="top" class="RD"><a href="page.index.php?page=6">Autres sites</a></td></tr><tr>
<td height="66" valign="top" class="RDvide">Caractéristiques</td></tr><tr>
<td height="58" valign="top" class="RD"><font color=white>Vous avez <i>'
.$sql['pv'].' PV/'.$sql['pv_max'].' PV</i></font></td></tr><tr>
<td height="65" valign="top" class="RD"><font color=white>Votre moral est de <i>'
.$sql['moral'].'/'.$sql['moral_max'].'</td></tr><tr>
<td height="62" valign="top" class="RD"><font color=white>Vous avez <i>'
.$sql['xp'].'</i> Xp\'s</td></tr><tr>
<td height="62" valign="top" class="RD"><font color=white>Grade <i>'
.$grade_joueur.'</i></td></tr><tr>
<td height="62" valign="top" class="RD"><font color=white><a href="messagerie.php?az=2">Messagerie</a></td></tr><tr>
<td height="62" valign="top" class="RD"><font color=white><a href="moncamp.php">Mon camp</a></td></tr><tr>
<td height="65" valign="top" class="RDvide"></td></tr><tr>
<td height="313" valign="top" class="RDimage"><p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p></td>
</tr>'
;
}
echo
'
<tr>
<td height="24" valign="top"><img src="images/basRD.jpg" alt="" width="197" height="24"></td>
</tr>

</table></td>
</tr>
<tr>
<td height="1"></td>
<td width="253"></td>
<td width="253"></td>
<td></td>
</tr>
</table>
</body>
</html>'
;
?>