Notice: Undefined index: possesseur in C

LeDoguenoir Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je ne comprends vraiment pas mon erreur, ca fait 2 jours que je cherche...

Voici les champs de ma base de donnees jeux_video :


ID
nom
possesseur
console
prix
nbre_joueurs_max
commentaires

Voici mon code :
<?php

try
 {
 $bdd=new PDO ('mysql:host=localhost;dbname=test','root','');
 }
 
catch (Exception $e)
 {
 die ('Erreur :'.$e->getMessage());
 }
 
 $all=$bdd->prepare('SELECT nom,prix from jeux_video WHERE possesseur = ? AND prix <= ? ORDER BY prix');
 $all->execute(array($_GET['possesseur'], $_GET['prix_max']));
 
 echo'<ul>';
 
 while ($donnee=$all->fetch())
  {
  echo '<li>'.$donnee['nom']. '('.$donnee['prix'].'EUR)</li>';
  }
 echo'</ul>';
$all->closeCursor();

?>

Mon message d'erreurs
:
Notice: Undefined index: possesseur in C:\wamp\www\tests\requetePreparee.php on line 14

) Notice: Undefined index: prix_max in C:\wamp\www\tests\requetePreparee.php on line 14


J'ai relu 20 fois je ne vois pas où j'ai fauté..


EDIT : Ajout des balises de code

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Le message indique que l'index "possesseur" de la variable GET
n'existe pas....
Vérifies que tu l'as bien orthographié dans ton URL .....

Et de préférence, lorsque tu récupères des variables POST ou GET ... utilises ISSET pour t'assurer qu'elles existent;

Par exemple dans ton cas :
<?php
// Connexion à la BDD 
//( à placer dans un fichier à part.. et juste à inclure lorsque besoin....)
try  {
  $bdd=new PDO ('mysql:host=localhost;dbname=test','root','');
}catch (Exception $e)  {
  die ('Erreur :'.$e->getMessage());
}
// Récupération des variables
$possesseur = isset($_GET['possesseur'])?$_GET['possesseur'] :NULL;
$prixMax = isset($_GET['prix_max'])?$_GET['prix_max']:NULL;

//préparation de la requête
$params = array($possesseur, $prixMax);
$sql = "SELECT nom,prix from jeux_video 
          WHERE possesseur = ? AND prix <= ? 
          ORDER BY prix";
$all=$bdd->prepare($sql);

//Execution de la requête
 $all->execute($params);
 
// Traitement des résultats
 echo'<ul>';
  while ($donnee=$all->fetch())  {
  echo '<li>'.$donnee['nom']. '('.$donnee['prix'].'EUR)</li>';
  }
 echo'</ul>';
$all->closeCursor();

?>







Cordialement,
Jordane
0