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

Résolu
MrAkiroKun Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
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>

A voir également:

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
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   Statut Membre Dernière intervention  
 
ça marche, merci de ton aide ;)
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753 > MrAkiroKun Messages postés 29 Date d'inscription   Statut Membre Dernière intervention  
 

ç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