Undefined index
Résolu
younes3120
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
younes27 -
younes27 -
Bonjour, en débutent avec php je suis bloqué avec les requêtes préparés
voici le code :
*
*
et l'erreur c'set la suiv:
( ! ) Notice: Undefined index: possesseur in C:\wamp\www\test\req_prepare.php on line 12
Call Stack
# Time Memory Function Location
1 0.0010 135672 {main}( ) ..\req_prepare.php:0
( ! ) Notice: Undefined index: prix_max in C:\wamp\www\test\req_prepare.php on line 12
Call Stack
# Time Memory Function Location
1 0.0010 135672 {main}( ) ..\req_prepare.php:0
*
Merci.
voici le code :
*
<?php try { $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '', $pdo_options); $req = $bdd->prepare('SELECT nom, prix FROM jeux_video WHERE possesseur = ? AND prix <= ? ORDER BY prix'); $req->execute(array($_GET['possesseur'], $_GET['prix_max'])); echo '<ul>'; while ($donnees = $req->fetch()) { echo '<li>' . $donnees['nom'] . ' (' . $donnees['prix'] . 'EUR)</li>'; } echo '</ul>'; $req->closeCursor(); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } ?>
*
et l'erreur c'set la suiv:
( ! ) Notice: Undefined index: possesseur in C:\wamp\www\test\req_prepare.php on line 12
Call Stack
# Time Memory Function Location
1 0.0010 135672 {main}( ) ..\req_prepare.php:0
( ! ) Notice: Undefined index: prix_max in C:\wamp\www\test\req_prepare.php on line 12
Call Stack
# Time Memory Function Location
1 0.0010 135672 {main}( ) ..\req_prepare.php:0
*
Merci.
A voir également:
- Undefined index
- Index téléphonique - Guide
- Telecharger index - Télécharger - Gestion de fichiers
- Index rapport de stage - Guide
- No index col - Forum Excel
- Recherchev avec no_index_col+1 - Forum Excel
2 réponses
'lut, c'est juste que les dits paramètres GET ne sont pas présents... Penses bien a vérifier tes entrées avec des
ifet la fonction
issetavant de faire tes requêtes.
younes27
merci beaucoup.
<Bonjour,
Voici le code "amélioré" :
.. si tu reçois un message d'erreur "Une ou plusieurs variables sont manquantes" .. c'est que tu ne passes rien dans ton $_GET ... ou que tes variables n'ont pas le "bon" nom ...
Dans ce cas .. fais un
(et si elle est vide... c'est que le souci vient de la page qui appelle ce code....)
Cordialement,
Jordane
Voici le code "amélioré" :
<?php //-----------------------------------------------------------------------// //connexion à la BDD //-----------------------------------------------------------------------// try { $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '', $pdo_options); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } //-----------------------------------------------------------------------// // Traitement //-----------------------------------------------------------------------// //Récupération des variables AVANT de les utiliser $possesseur = !empty($_GET['possesseur']) ? $_GET['possesseur'] : NULL; $prix_max = !empty($_GET['prix_max']) ? $_GET['prix_max'] : NULL; if($possesseur && $prix_max ){ // si les variables existents et ne sont pas vides try{ $sql = "SELECT nom, prix FROM jeux_video WHERE possesseur = :possesseur AND prix <= :prix ORDER BY prix"; $params=array(":possesseur"=>$possesseur , ":prix"=> $prix_max); $req = $bdd->prepare($sql); $req->execute($params); //on stocke le résultat de la requête dans un array $arr_result = $req->fetchAll(); $req->closeCursor(); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } // Si la requête a retourné qqchose : if(count($arr_result)>0){ echo '<ul>'; foreach($arr_result as $R){ echo '<li>' . $R['nom'] . ' (' . $R['prix'] . 'EUR)</li>'; } echo '</ul>'; } }else{ echo "<br>Erreur ; Une ou plusieurs variables sont manquantes !"; echo " <br> - possesseur : $possesseur "; echo " <br> - prix_max : $prix_max "; }
.. si tu reçois un message d'erreur "Une ou plusieurs variables sont manquantes" .. c'est que tu ne passes rien dans ton $_GET ... ou que tes variables n'ont pas le "bon" nom ...
Dans ce cas .. fais un
print_r($_GET);au début de ton script pour voir ce que cette variable contient......
(et si elle est vide... c'est que le souci vient de la page qui appelle ce code....)
Cordialement,
Jordane