Récuperer les données d'une base pour les mettre dans un tableau

Résolu/Fermé
MrAkiroKun
Messages postés
29
Date d'inscription
vendredi 8 août 2014
Statut
Membre
Dernière intervention
22 janvier 2016
- 6 janv. 2016 à 12:16
jordane45
Messages postés
35464
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 mai 2022
- 6 janv. 2016 à 14:59
Bonjour,

Je voudrais récupérer les données qui sont dans ma bases MySQL et les mettre dans un tableau avec une boucle while, MAIS, un problème se présente puisque dans mes colonnes, des erreurs se présentent sous cette forme : "Notice: Undefined index: nom in C:\wamp\www\paul\Projet M.Vautier\liste.php on line 43 ".

Je fais le tout en PDO, et je pense que le problème vient du fait que mes données ne sont pas des string, puisque avec un print_r, je peut récuperer mes données, je met mes codes, si vous trouvez l'erreur, merci d'avance ;)

<!DOCTYPE html>
<html lang="fr">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	<script type=\"text/javascript\" src=\"js/bootstrap.min.js\"></script>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="shortcut icon" href="ico/favicon.ico">
    <title>Administration</title>
    <link href="css/bootstrap.min.css" rel="stylesheet">
    <link href="css/form.css" rel="stylesheet">
  </head>
  <body>
    <?php
try{
    $PDO = new PDO('mysql:host=localhost;dbname=liste_eleve;charset=utf8', 'root', '');
}catch (Exception $e){
    die('Erreur : ' . $e->getMessage());
}
$reponse = $PDO->prepare('SELECT * FROM eleves ORDER BY nom');
$reponse->execute();
?>
<div class="panel panel-primary">
  <!-- Default panel contents -->
		<div class="panel-heading">
		<center><span class="badge">
		<p>Informations de la classe</p>
		</span></center>
		</div>
        <table class="table table-bordered table-hover table-striped">
                <tr>
                    <th>Nom</th>
                    <th>Prénom</th>
                    <th>Date de naissance</th>
                    <th>Adresse</th>
                    <th>Numéro</th>
                    <th>Adresse Email</th>
                </tr>
            <?php //On affiche les lignes du tableau une à une à l'aide d'une boucle
            while($donnees = $reponse->fetchAll(){
            ?>
                <tr>
                    <td><?php echo $donnees['nom'];?></td>
                    <td><?php echo $donnees['prenom'];?></td>
                    <td><?php echo $donnees['born_date'];?></td>
                    <td><?php echo $donnees['adresse'];?></td>
                    <td><?php echo $donnees['numero'];?></td>
                    <td><?php echo $donnees['mail'];?></td>
                </tr>
            <?php
            } //fin de la boucle, le tableau contient toute la BDD
            ?>
        </table>
		</div>
  </body>
</html>

1 réponse

jordane45
Messages postés
35464
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 mai 2022
4 154
Modifié par jordane45 le 6/01/2016 à 12:25
Bonjour,
tu utilises un fetchall ... donc ça ne se boucle pas ainsi...

Essayes ça :



$reponse = $PDO->prepare('SELECT * FROM eleves ORDER BY nom');
$reponse->execute();
$donnees = $reponse->fetchAll();



et la boucle :
 foreach($donnees as $R){
 
  echo "<tr>";
  echo "<td>".$R['nom']."</td>
         <td>".$R['prenom']."</td>
         <td>".$R['born_date']."</td>
         <td>".$R['adresse']."</td>
         <td>".$R['numero']."</td>
         <td>".$R['mail']."</td>";
  echo "</tr>";
 } //fin de la boucle, le tableau contient toute la BDD
?>




Cordialement, 
Jordane                                                                 
0
MrAkiroKun
Messages postés
29
Date d'inscription
vendredi 8 août 2014
Statut
Membre
Dernière intervention
22 janvier 2016

6 janv. 2016 à 14:45
ça marche, merci de ton aide ;)
0
jordane45
Messages postés
35464
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 mai 2022
4 154 > MrAkiroKun
Messages postés
29
Date d'inscription
vendredi 8 août 2014
Statut
Membre
Dernière intervention
22 janvier 2016

6 janv. 2016 à 14:59

ça marche

Ca je n'en doutais pas :-)

Si la question est résolue..
Merci de ne pas oublier de clôturer le sujet
(en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)

Cordialement,
Jordane
0