[Debutant PHP] Erreur incorrigible pour moi

Résolu
vulture -  
 vulture -
Bonjour,

Voila, je débute en php, je me voila avec cette erreur :

Notice: Undefined index: pseudo in minitchat.php on line 25

Notice: Undefined index: text in minitchat.php on line 25

Et, même en cherchant des solution sur le net, je m'y prend peut-etre mal mais elle ce fonctionnent pas, Help Me ?

Merci d'avance :)

Voici mon code

   <html>
 <head>
 </head>
 
 <body>
  <header>
  </header>
  
  <section>
   <form method="post" action="minitchat_post.php">
    <p><input type="text" name="pseudo" placeholder="Votre Pseudo" /></p>
    <p><textarea name="message" rows="3" cols="45" placeholder="Votre Message" /></textarea></p>
    <p><input type="submit" value="Envoyer" /></p>
   </form>
   
   <?php
   
   $bdd = new PDO('mysql:host=localhost;dbname=minitchatdb', 'root', ''); //choix de la DB
   
   $reponse = $bdd->query('SELECT * FROM minitchat_php ORDER BY id Desc'); //Recup de la table
   
   while ($data = $reponse->fetchAll())
   {
     
    echo $data['pseudo'] . ':' . $data['text'];
   
   }
   
   $reponse->closeCursor();

   ?>
  </section>
  
  <footer>
  </footer>
 </body>
</html>



2 réponses

ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223
 
'lut, tu n'utilises pas
fetchAll
comme il faut: fetchAll récupère tous les résultats d'un coup et le met dans un tableau. Or, vu comment ton code est fait, tu devrait plutôt chercher à utiliser
fetch
, qui récupère une seule ligne, la ligne suivant celle dernièrement récupérée (ou la première si aucune n'a été récupérée avant):
while ($data = $reponse->fetch())
{
    echo $data['pseudo'] . ':' . $data['text'];
}

D'ailleurs, fetch revoie
false
s'il y a eu une erreur; il peut être une bonne idée que de vérifier à chaque fois:
while (($data = $reponse->fetch()) !== false) {

from human import idiocy
del idiocy
1
vulture
 
ça marche niquel :D

Merci beaucoup :)
0
Profil bloqué
 
En ligne 15 :

tu devrais remplacer
 echo $data['pseudo'] . ':' . $data['text'];


par

if(isset($data['pseudo']) && isset($data['text']))
{
  echo $data['pseudo'] . ':' . $data['text'];
}
-1