pb requete et affichage

Eléphant du PHP | 250 Messages

18 oct. 2006, 22:15

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>


ViPHP
ViPHP | 1961 Messages

18 oct. 2006, 22:46

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
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 250 Messages

20 oct. 2006, 15:40

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()
?>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

20 oct. 2006, 15:58

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 :)

Eléphant du PHP | 250 Messages

20 oct. 2006, 22:46

non, non .........
$_SESSION['stock1'] vient d'une session (qui s'affiche correctement au préalable sur la page "membre"....

Eléphant du PHP | 250 Messages

20 oct. 2006, 22:50

J'ai viré le "while" mais cela donne le meme resultat.....
le texte s'affiche (...) mais pas l'image de stock1.

Eléphant du PHP | 250 Messages

20 oct. 2006, 22:50

meme en rajoutant cela en début dans le session_start...


$stock1= $_SESSION['stock1'];

Eléphant du PHP | 250 Messages

20 oct. 2006, 22:56

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(); 
?>