Page 1 sur 1

pb affichage avec switch

Posté : 31 janv. 2007, 23:08
par YVES
Bonjour,

je n'arrive pas à trouver la bonne formule pour afficher un texte selon un paramètre de lieu en utilisant la fonction switch, j'ai toujours une page blanche à l'affichage....
$rsb = mysql_query("SELECT img FROM map WHERE posx =".$rsa['posx']." AND posy=".$rsa['posy']."") or die(mysql_error());
$data = mysql_fetch_assoc($rsb);
$img= $data['img'];
switch ($data){
   case "./relief/pre.gif":
$sql = "UPDATE membres SET localisation= 'dans 1 pré' WHERE id = ". $id;  
              mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
                if($res){
               $_SESSION['localisation']=' dans 1 pré.';
 break;
}
?>	   
<body background="images/fond.jpg" bgproperties="fixed">
<center><table width="32%" border="2" valign="center" bgcolor="#FFFFFF">
    <td width="32%"><center><strong><font face="Calligraph421 BT">
vous etes <?php echo $_SESSION['localisation'];?></font></strong></td>
je suppose que le pb vient de là
switch ($data){
case "./relief/pre.gif":

j'ai testé avec ' au lieu de ", pre.gif seul, /relief/pre.gif, rien ne marche :roll:

Posté : 31 janv. 2007, 23:26
par YVES
:?
j'avais oublié une accolade fermante !

Il n'empeche l'update en table ne fonctionne pas, je reste avec le lieu défini en premier....

$rsb = mysql_query("SELECT img FROM map WHERE posx =".$rsa['posx']." AND posy=".$rsa['posy']."") or die(mysql_error());
$data = mysql_fetch_assoc($rsb);
$img= $data['img'];
switch ($data){
  case "./relief/pre.gif":
$sql = "UPDATE membres SET localisation= 'dans 1 pré' WHERE id = ". $id.";";  
               mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
             if($res){
           $_SESSION['localisation']=' dans 1 pré';
		   }
break;
  case "./relief/montagne.gif":
$sql = "UPDATE membres SET localisation= 'en montagne' WHERE id = ". $id.";";  
               mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
             if($res){
           $_SESSION['localisation']=' en montagne';
		   }
break;
}
?>	   
<body background="images/fond.jpg" bgproperties="fixed">
<center><table width="32%" border="2" valign="center" bgcolor="#FFFFFF">
    <td width="32%"><center><strong><font face="Calligraph421 BT">
vous etes <?php echo $_SESSION['localisation'];?></font></strong></td>
</table>
<table width="7" border="0" align="center">
   <tr> 
  <td width="7" height="15" valign="top"><center>
<br><center><img src="<? echo $data['img']?>" alt="" /></center></center>
</table>

Posté : 31 janv. 2007, 23:29
par HD
affiche $data avant de tester sa valeur :!:

Posté : 01 févr. 2007, 00:16
par Invité
affiche $data avant de tester sa valeur :!:


je l'affiche ou ?

elle est pourtant déclarée en début de script

$img= $data['img'];


:oops:

Posté : 01 févr. 2007, 00:21
par HD
juste avant le switch met
print_r($data);
pour voir ce que contient ta variable :wink:

Posté : 01 févr. 2007, 00:22
par Invité
J'ai déplacé celà juste avant le switch mais le update ne marche tjrs pas, par défaut, cela reste à "dans 1 pré" comme valeur.

<body background="images/fond.jpg" bgproperties="fixed">
<table width="7" border="0" align="center">
   <tr> 
  <td width="7" height="15" valign="top"><center>
<br><center><img src="<? echo $data['img']?>" alt="" /></center></center>
</table>
[/php]

Posté : 01 févr. 2007, 00:26
par YVES
cela affiche Array ( [img] => ./relief/RTMI.gif )
vous etes dans 1 pré


:roll:

Posté : 01 févr. 2007, 00:28
par YVES
En fait, c'est le fichier graphique (RTMi.gif) ca cxoince donc au niveau de la variable qui ne serait pas la bonne?
Pourtant c'est en fonction du fichier graphique, que le texte affiché doit changer et s'updater en table.

Posté : 01 févr. 2007, 00:32
par HD
tout simplement, ton switch ne prévoit pas le cas "./relief/RTMI.gif" :!:

Posté : 01 févr. 2007, 22:17
par YVES
non, non, non :twisted:
voilà le script complet, et l'update ne fonctionne toujours pas....
<?php
  session_start();
$id = $_SESSION['id'];
 $db= mysql_connect(localhost, aaaa, bbbb) or die("Impossible de se connecter à la base de données"); 	   
 mysql_select_db('ccccc',$db)  or die('Erreur de selection base'.mysql_error());
//on va chercher la position du joueur
$requete = mysql_query("SELECT avatar, posx, posy FROM membres WHERE id = ". $id .";");
$rsa= mysql_fetch_assoc ($requete);
$posx = $rsa['posx'];
$posy = $rsa['posy'];
$avatar = $rsa['avatar'];
//Là, on va chercher la case de la map qui correspond au X/Y de ton perso 
$rsb = mysql_query("SELECT img FROM map WHERE posx =".$rsa['posx']." AND posy=".$rsa['posy']."") or die(mysql_error());
$data = mysql_fetch_assoc($rsb);
$img= $data['img'];
switch ($data){
  case "./relief/pre.gif":
$sql = "UPDATE membres SET localisation= 'dans 1 pré' WHERE id = ". $id.";";  
               mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
             if($res){
           $_SESSION['localisation']=' dans 1 pré';
		   }
break;
  case "./relief/montagne.gif":
$sql = "UPDATE membres SET localisation= 'en montagne' WHERE id = ". $id.";";  
               mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
             if($res){
           $_SESSION['localisation']=' en montagne';
		   }
break;
  case "./relief/foret.gif":
$sql = "UPDATE membres SET localisation= 'en foret' WHERE id = ". $id.";";  
               mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
             if($res){
           $_SESSION['localisation']=' en foret';
		   }
break;
  case "./relief/lac.gif":
$sql = "UPDATE membres SET localisation= 'sur un lac' WHERE id = ". $id.";";  
               mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
             if($res){
           $_SESSION['localisation']=' sur un lac';
		   }
break;
  case "./relief/chemin.gif":
$sql = "UPDATE membres SET localisation= 'en chemin' WHERE id = ". $id.";";  
               mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
             if($res){
           $_SESSION['localisation']=' en chemin';
		   }
break;
  case "./relief/riviere.gif":
$sql = "UPDATE membres SET localisation= 'sur la rivière' WHERE id = ". $id.";";  
               mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
             if($res){
           $_SESSION['localisation']=' sur la rivière';
		   }
break;
  case "./relief/mer.gif":
$sql = "UPDATE membres SET localisation= 'en mer' WHERE id = ". $id.";";  
               mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
             if($res){
           $_SESSION['localisation']=' en mer';
		   }
break;
  case "./relief/champ.gif":
$sql = "UPDATE membres SET localisation= 'au champ' WHERE id = ". $id.";";  
               mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
             if($res){
           $_SESSION['localisation']=' au champ';
		   }
break;
  case "./relief/colline.gif":
$sql = "UPDATE membres SET localisation= 'sur une colline' WHERE id = ". $id.";";  
               mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
             if($res){
           $_SESSION['localisation']=' sur une colline';
		   }
break;
  case "./relief/desert.gif":
$sql = "UPDATE membres SET localisation= 'dans le désert' WHERE id = ". $id.";";  
               mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
             if($res){
           $_SESSION['localisation']=' dans le désert';
		   }
break;
  case "./relief/bmi.gif":
$sql = "UPDATE membres SET localisation= 'à la BMI' WHERE id = ". $id.";";  
               mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
             if($res){
           $_SESSION['localisation']=' à la BMI';
		   }
break;
  case "./relief/RTMI.gif":
   echo $data['img'];

$sql = "UPDATE membres SET localisation= 'à la RTMI' WHERE id = ". $id.";";  
               mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
             if($res){
           $_SESSION['localisation']=' à la RTMI';
		   }
break;
  case "./relief/bourse.gif":
$sql = "UPDATE membres SET localisation= 'à la bourse du commerce' WHERE id = ". $id.";";  
               mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
             if($res){
           $_SESSION['localisation']=' à la bourse du commerce';
		   }
break;

}
?>
<body background="images/fond.jpg" bgproperties="fixed">
<center><table width="32%" border="2" valign="center" bgcolor="#FFFFFF">
    <td width="32%"><center><strong><font face="Calligraph421 BT">
vous etes <?php echo $_SESSION['localisation'];?></font></strong></td>
</table>
<table width="7" border="0" align="center">
   <tr> 
  <td width="7" height="15" valign="top"><center>
<br><center><img src="<? echo $data['img']?>" alt="" /></center></center>
</table>