Problème de SELECT

Résolu
valentin358 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -  
valentin358 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, j''ai un problème avec un code et je ne trouve pas l'erreur :
if(isset($_POST['outil']))
{
include("mysql_bdd.php");

$donnee1=mysql_query("SELECT * FROM magasin WHERE mag_designation='".$_POST['outil']."'");//on sélectionne les info de l'objet sélectionné.
$reponse1=mysql_fetch_array($donnee1);

$donnee2=mysql_query("SELECT * FROM marchandises WHERE march_pseudo='".$_SESSION['pseudo']."'");//On sélectionne les objets qu'a déja en sa possession l'acheteur
$reponse2=mysql_fetch_array($donnee2);
echo 'DEBUT <br />';
echo $_POST['outil'].'<br />';
echo $reponse2['march_designation'].'<br />';
	if(!isset($reponse2['march_designation']) OR !isset($_POST['outil']))
	{
	echo 'Une erreur c\'est produite. Veuillez contacter le webmasteur. <br />';
	}
	elseif($_POST['outil']=$reponse2['march_designation'])//on vérifié que l'acheteur ne possède pas cette objet
	{
	echo 'Vous possédez déjà cette objet : '.$reponse1['mag_designation'];
	}
	elseif($_POST['outil']!=$reponse2['march_designation'])//On enregistre les info de l'objet acheté dans la table "marchandise" avec le pseudo de l'acheteur
	{
	$donnee3=mysql_query("INSERT INTO marchandises VALUES ('','".$_SESSION['pseudo']."','".$reponse1['mag_designation']."','".$reponse1['mag_prix']."','".$reponse1['mag_type']."')");
	echo 'Vous venez d\'acheté un '.$reponse1['mag_designation'].' au prix de '.$reponse1['mag_prix'].'€';
	}
echo 'FIN <br />';
}
else
{
echo 'Vous devez choisir une marchandise.';
}


?>

Le problème c'est que j'ai l'impression que $reponse2['march_designation'] est vide car j'ai le message "Une erreur c'est produite. Veuillez contacter le webmasteur. <br />" qui s'affiche donc l'erreur vient surement du $donne2 et $reponse2 car l'echo $reponse2['march_designation'] n'affiche rien contrairement à l'echo $_$_POST['outil'].

4 réponses

BloodyAngel Messages postés 1482 Date d'inscription   Statut Contributeur Dernière intervention   403
 
Hello,
as-tu bien spécifié session_start(); au début de ton code ?
J'imagine que oui mais on sait jamais :o)
0
valentin358 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   2
 
oui je l'es mis
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
voir commentaires:

if(isset($_POST['outil']))
{
include("mysql_bdd.php");

$donnee1=mysql_query("SELECT * FROM magasin WHERE mag_designation='".$_POST['outil']."'");//on sélectionne les info de l'objet sélectionné.
$reponse1=mysql_fetch_array($donnee1); //en opérant ainsi tu n'aura qu'une seule ligne de ta table, hors tu parles d'infos au pluriel ??

$donnee2=mysql_query("SELECT * FROM marchandises WHERE march_pseudo='".$_SESSION['pseudo']."'");//On sélectionne les objets qu'a déja en sa possession l'acheteur
$reponse2=mysql_fetch_array($donnee2); //en opérant ainsi tu n'aura qu'une seule ligne de ta table, hors tu parles d'objets au pluriel ??

//pour les deux remarques ci dessus il faut faire une boucle while pour le mysql_fetch_array

echo 'DEBUT <br />';
echo $_POST['outil'].'<br />';
echo $reponse2['march_designation'].'<br />';
	if(!isset($reponse2['march_designation']) OR !isset($_POST['outil']))
	//ce test n'est pas valable isset veut dire si la variable existe, pour détecter une errue de requette c'est pas bon
	//fais plutot if($donnee2)  si la requette marche pas c'est false
	{
	echo 'Une erreur c\'est produite. Veuillez contacter le webmasteur. <br />';
	}
	elseif($_POST['outil']=$reponse2['march_designation'])//on vérifié que l'acheteur ne possède pas cette objet
	{
	echo 'Vous possédez déjà cette objet : '.$reponse1['mag_designation'];
	}
	elseif($_POST['outil']!=$reponse2['march_designation'])//On enregistre les info de l'objet acheté dans la table "marchandise" avec le pseudo de l'acheteur
	{
	$donnee3=mysql_query("INSERT INTO marchandises VALUES ('','".$_SESSION['pseudo']."','".$reponse1['mag_designation']."','".$reponse1['mag_prix']."','".$reponse1['mag_type']."')");
	echo 'Vous venez d\'acheté un '.$reponse1['mag_designation'].' au prix de '.$reponse1['mag_prix'].'€';
	}
echo 'FIN <br />';
}
else
{
echo 'Vous devez choisir une marchandise.';
}


?>
0
valentin358 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   2
 
J'ai réussi. J'ai rajouté une condition dans $donnee2 :
$donnee2=mysql_query("SELECT * FROM marchandises WHERE march_pseudo='".$_SESSION['pseudo']."' AND march_designation='".$_POST['outil']."'") or die('Erreur SQL !<br />'.$donnee2.'<br />'.mysql_error());//On sélectionne les objets qu'a déja en sa possession l'acheteur
$reponse2=mysql_fetch_array($donnee2);
0