Message : Undefined index: LISTE1

Résolu
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

3 réponses

  1. 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.
    1. Modérateur
      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. Effectivement, je comprends mieux mon erreur.
    Merci à toi, ça fonctionne.