Message : Undefined index: LISTE1

Résolu/Fermé
Raven76 Messages postés 250 Date d'inscription samedi 10 avril 2010 Statut Membre Dernière intervention 21 février 2024 - Modifié le 4 févr. 2022 à 10:41
Raven76 Messages postés 250 Date d'inscription samedi 10 avril 2010 Statut Membre Dernière intervention 21 février 2024 - 4 févr. 2022 à 13:17
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 38424 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 février 2025 4 734
4 févr. 2022 à 10:59
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 samedi 10 avril 2010 Statut Membre Dernière intervention 21 février 2024 15
4 févr. 2022 à 11: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 38424 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 février 2025 4 734
Modifié le 4 févr. 2022 à 12:00
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 samedi 10 avril 2010 Statut Membre Dernière intervention 21 février 2024 15
Modifié le 4 févr. 2022 à 13:19
Effectivement, je comprends mieux mon erreur.
Merci à toi, ça fonctionne.
0