Php requête préparée n'affiche message erreur

Bonjour,

J'étudie le php actuellement et le code "requête préparé" sitôt que je clique sur le nom de fichier dans le dossier www d'easyphp m'affhice cette information :

Notice: Undefined index: possesseur in C:\Program Files\EasyPHP-5.3.2i\www\selection_jeux.php on line 19

Notice: Undefined index: prix_max in C:\Program Files\EasyPHP-5.3.2i\www\selection_jeux.php on line 19

Je ne suis pas très intelligent quelqu'un pourrait m'aider s'il vous plaît ? Voici ci-dessous le code concerné :

<html>
<head><title></title></head>
<body>
<?php
try
{
	// On se connecte à MySQL
	$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
}
catch(Exception $e)
{
	// En cas d'erreur, on affiche un message et on arrête tout
        die('Erreur : '.$e->getMessage());
}

// Requête préparée

$req = $bdd->prepare('SELECT nom, prix FROM jeux_video WHERE possesseur = ? AND prix <= ? ORDER BY prix');
$req->execute(array($_GET['possesseur'], $_GET['prix_max'])); LIGNE 19
echo '<ul>';

while ($donnees = $req->fetch())





{
echo '<li>' .$donnees['nom']. '('.$Donnees['prix']. 'EUR)</li>';
}
echo'</ul>';




$req->closeCursor();
?>



</body>
</html>


1 réponse

  • Votes
  • Date
  • Date décroissante
  1. Salut

    tu récupère les infos en GET, ça veut dire que les valeurs de possesseur et prix_max doivent être contenus dans l'URL :

    mapage.php?possesseur=robert&prix_max=2
    1. Salut Francis j'ai déjà fait ce que tu me proposes et ça marche nonobstant qu'il laisse apparaître des messages d'erreur. On me dit qu'il faut faire appel à la fonction isset mais je ne sais où la mettre et comment la faire intervenir ? Pourrais-tu me guider ? Merci.
    2. bah tu fais
      if(!isset($_GET["possesseur"]))
      echo "possesseur pas connu";

      si ça t'affiche "possesseur pas connu", bah tu sais que ton problème vient du fait que $_GET["possesseur"] existe pas
    3. Voici ce que j'ai fait tout en suivant tes conseil et les conseil des autres :
      if (isset($_GET['possesseur'],$_GET['prix_max']) AND !empty($_GET['possesseur']) AND !empty($_GET['prix_max']))
      Maintenant je n'ai plus d'erreur mais la page n'affiche plus rien. Aucune donnée ne m'est retournée de ma base. Snif ! Merci quand même Francis.
    4. if (isset($_GET['possesseur'] && isset($_GET['prix_max']) && !empty($_GET['possesseur']) && !empty($_GET['prix_max']))
      ça marche mieu ?
    5. En y mettant le code que tu me propose easyphp m'affiche :

      Parse error: syntax error, unexpected T_BOOLEAN_AND, expecting ',' or ')' in C:\Program Files\EasyPHP-5.3.2i\www\selection_jeux.php on line 6

      Merci pour ton aide Francis