Page 1 sur 1

pb requete et affichage

Posté : 18 oct. 2006, 22:15
par YVES
Bonjour,

voilà mon bout de code qui m'affiche une page blanche....
<?php
  session_start();
 $id = $_SESSION['id'];
$db= mysql_connect(localhost, xxxx,xxxx) or die("Impossible de se connecter à la base de données"); 	   
 mysql_select_db('xxxxx',$db)  or die('Erreur de selection base'.mysql_error());
$sql = "SELECT gestion ".
       "FROM membres  ".
       "WHERE id = ". $id .";"; 
$res = mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
($data = mysql_result($res,0,'gestion'));
if ($data == './images/jetonrouge.gif')
{
    echo '<center><font color="red">Désolé, mais VOTRE JETON EST ROUGE !</font></center>
<center><font color="black"><a href="page_membre.php">retour page membre</a></font></center>';
}
else
{
$reponse = mysql_query("SELECT stock1 FROM membres  WHERE id = ". $id .";"); 
//$sql= "SELECT stock1". "FROM membres ". "WHERE id = ". $id .";";  
while ($donnees = mysql_fetch_array($reponse) )
//while ($donnees = mysql_fetch_array($sql))
}
?>
<center><strong><font face="Calligraph421 BT">objets et ressources en stock perso pouvant etre utilisés</font></strong></center>
<br><center><img src="./objet/<?php echo $_SESSION['stock1'];?>" alt="" /></center>


Posté : 18 oct. 2006, 22:46
par Ajoloca
Bonsoir,

PHP devrait afficher une erreur de syntaxe (PARSE_ERROR), il manque le ; après la boucle while, de plus, dans le cas où le else soit sélectionné
else
{
$reponse = mysql_query("SELECT stock1 FROM membres  WHERE id = ". $id .";"); 
//$sql= "SELECT stock1". "FROM membres ". "WHERE id = ". $id .";";  
while ($donnees = mysql_fetch_array($reponse) ) 
}
Aucune demande d'affichage dans la boucle while

Posté : 20 oct. 2006, 15:40
par YVES
Il y a un peu d'amélioration ainsi....
Mais l'image dans la session, ne s'affiche pas (à savoir stock1)......


<?php 
  session_start(); 
 $id = $_SESSION['id']; 
$db= mysql_connect(localhost, xxxx,xxxx) or die("Impossible de se connecter à la base de données");         
 mysql_select_db('xxxxx',$db)  or die('Erreur de selection base'.mysql_error()); 
$sql = "SELECT gestion ". 
       "FROM membres  ". 
       "WHERE id = ". $id .";";  
$res = mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error()); 
($data = mysql_result($res,0,'gestion')); 
if ($data == './images/jetonrouge.gif') 
{ 
    echo '<center><font color="red">Désolé, mais VOTRE JETON EST ROUGE !</font></center> 
<center><font color="black"><a href="page_membre.php">retour page membre</a></font></center>'; 
} 
else 
{ 
$reponse = mysql_query("SELECT stock1 FROM membres  WHERE id = ". $id .";");  
//$sql= "SELECT stock1". "FROM membres ". "WHERE id = ". $id .";";   
while ($donnees = mysql_fetch_array($reponse) ) 
//while ($donnees = mysql_fetch_array($sql)); 
} 
?> 
<center><strong><font face="Calligraph421 BT">objets et ressources en stock perso pouvant etre utilisés</font></strong></center> 
<br><center><img src="./objet/<?php echo $_SESSION['stock1'];?>" alt="" /></center> 
 <?php 
mysql_close()
?>

Posté : 20 oct. 2006, 15:58
par Ryle
A aucun moment tu ne renseignes la valeur de $_SESSION['stock1'], est-ce qu'elle provient d'une page précédente ou bien c'est un loupé ?

- si elle provient d'une page précédente, quelle valeur contient-elle ? existe il bien une image avec ce nom dans le dossier "objet/" ? (attention aux majuscules/minuscules)
- sinon, bah c'est normal ;) ... ça ne serait pas plutôt $donnees[] au lieu de $_SESSION qu'il faudrait utiliser ?
// Si tu n'as qu'une seule valeur à récupérer, tu peux virer le while :
while ($donnees = mysql_fetch_array($reponse) )
// devient 
$donnees = mysql_fetch_array($reponse);
C'est beaucoup plus clair :)

Posté : 20 oct. 2006, 22:46
par YVES
non, non .........
$_SESSION['stock1'] vient d'une session (qui s'affiche correctement au préalable sur la page "membre"....

Posté : 20 oct. 2006, 22:50
par YVES
J'ai viré le "while" mais cela donne le meme resultat.....
le texte s'affiche (...) mais pas l'image de stock1.

Posté : 20 oct. 2006, 22:50
par YVES
meme en rajoutant cela en début dans le session_start...


$stock1= $_SESSION['stock1'];

Posté : 20 oct. 2006, 22:56
par YVES
Autant pour moi, ca y est c'est résolu :oops:
le ./objet/ était de trop !
$reponse = mysql_query("SELECT stock1 FROM membres  WHERE id = ". $id .";"); 
($donnees = mysql_fetch_array($reponse));
}
?>
<center><strong><font face="Calligraph421 BT">objets et ressources en stock pouvant etre utilisés</font></strong></center>
<br><center><img src= "<?php echo $_SESSION['stock1'];?>" alt="" /></center>
<?php 
mysql_close(); 
?>