Message : Undefined index: LISTE1

Résolu
Raven76 Messages postés 250 Date d'inscription   Statut Membre Dernière intervention   -  
Raven76 Messages postés 250 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai activé le mode DEBUG de mon code PHP et j'ai un message que je n'arrive pas à faire disparaitre.
" Notice : Undefined index: LISTE1.... "

Je tente de remplir une liste déroulante depuis ma base SQL.

Voici la partie de mon code :

$requser2 = $bdd->prepare("SELECT * FROM MEMBRES WHERE PSEUDO_MBR = ?");
$requser2->execute(array($_POST['LISTE1']));
$userinfo2 = $requser2->fetch();
$id_mbr = $userinfo2['ID_MBR'];


avec le SELECT dans le code HTML.

<select name="LISTE1" style="width: 120px">
  <option value="" disabled selected>Identifiant</option>
  <?php
  $requser = $bdd->query("SELECT * FROM MEMBRES");
  while ($pseudo_mbr = $requser->fetch())
  {
   echo '<option>'.$pseudo_mbr['PSEUDO_MBR'].'</option>';
  }
  ?>
</select>


Mon but n'es pas de lui donner sa clé index au 1er chargement de la page.

Auriez vous une solution ?

Raven76
A voir également:

3 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour
Au chargement de la page la variable $_POST est vide.
Im faut donc vérifier qu'elle est remplie avant de l'utiliser

https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index

.
0
Raven76 Messages postés 250 Date d'inscription   Statut Membre Dernière intervention   15
 
Justement, elle doit rester vide tant que l'utilisateur n'a pas fait son choix dans la liste déroulante
Je ne souhaite pas mettre de valeur par défaut.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Il faut juste vérifier que ta variable existe avant de l'utiliser.
Tu peux utiliser un if qui englobe ton code pour la requête SQL....
$liste1=!empty($_POST['LISTE1']) ? $_POST['LISTE1'] : null;
if($liste1) {
    $requser2 = $bdd->prepare("SELECT * FROM MEMBRES WHERE PSEUDO_MBR = ?");
    $requser2->execute(array($liste1));
    $userinfo2 = $requser2->fetch();
    $id_mbr = $userinfo2['ID_MBR'];

}
2
Raven76 Messages postés 250 Date d'inscription   Statut Membre Dernière intervention   15
 
Effectivement, je comprends mieux mon erreur.
Merci à toi, ça fonctionne.
0