Notice: Undefined index: possesseur in C

LeDoguenoir Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 30427 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

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    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