Rectifications avec PDO

Eléphanteau du PHP | 30 Messages

19 oct. 2015, 01:42

Bonsoir finalement je suis allé me replonger dans les cours disponibles sur le net traitant PDO notamment de la connexion aux bases de données de la gestion des erreurs avec je rappelle j'ai créé une base de données dénommée ''amateurs'' et qui contient une table dénommée ''agents'' ayant 3 colonnes suivantes : ''prenom'' ''nom'' ''adresse'' (il s'agit des noms de chaque colonne tels que je les ai écrits dans la base avec l'interface mysql de wamp ) et que j'ai rempli via un formulaire jusque là tout marche bien la table reçoit correctement touts les enregistrements que j'y envois.
Mais c'est quand je veux afficher les données de la table que j'ai des problèmes.
J'ai essayé d'utiliser le try/catch pour la connexion avec la base de données je pense l'avoir réussi car si j’exécute le code jusqu'à la ligne 13 le navigateur m'affiche une page blanche donc je cocois tel que j'ai rédigé le code qu'il n'y a pas d'erreur de connexion.
Je voudrais que quelqu'un me donne son avis sur le reste du code car le navigateur m'affiche les erreurs suivantes :
Notice: Undefined index: prenom in C:\wamp\www\Nouveau dossier (2)\Site2\pour_essayer.php on line 27

Notice: Undefined index: nom in C:\wamp\www\Nouveau dossier (2)\Site2\pour_essayer.php on line 27

Notice: Undefined index: adresse in C:\wamp\www\Nouveau dossier (2)\Site2\pour_essayer.php on line

Je rappelle que la ligne 27 est celle qui correspond à l'avant derniere ligne du code ci dessous :

echo $donnee['prenom'].':'.$donnee['nom'].':'.$donnee['adresse'].'<br/>';

voici le code :

Code : Tout sélectionner

<html> <?php //tentative de connexion à la base de données try { $conect = new PDO('mysql:host=localhost;dbname=amateurs','root',''); } catch (PDOException $e) { echo "Problème de connexion avec la base de donnée / Database error<br/>".$e->getMessage(); die(); } try { $retour = $conect->query('SELECT * FROM agents'); $donnee = $retour->fetchAll(); } catch (PDOException $e) { echo "Problème pour lire la base <br/>Opération annulée"; die(); } echo $donnee['prenom'].':'.$donnee['nom'].':'.$donnee['adresse'].'<br/>'; $base = null; ?> </html>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

19 oct. 2015, 07:26

Bonjour,

Fait un var_dump($donnee) pour voir ce que contient ta variable $donnee ;-)
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 30 Messages

19 oct. 2015, 13:54

finalement j'ai rectifié l'erreur je pense mais le navigateur ne m'affiche que le premier enregistrement de ma table alors que moi je veux afficher toutes ses lignes
on dirait qu'il me manque une boucle qui me permet de lire et d'afficher toutes les enregistrements de la table
voici le code rectifié:

Code : Tout sélectionner

<html> <?php //tentative de connexion à la base de données try { $conect = new PDO('mysql:host=localhost;dbname=amateurs','root',''); } catch (PDOException $e) { echo "Problème de connexion avec la base de donnée / Database error<br/>".$e->getMessage(); die(); } try { $retour = $conect->query('SELECT * FROM agents'); $donnee = $retour->fetch(); } catch (PDOException $e) { echo "Problème pour lire la base <br/>Opération annulée"; die(); } echo $donnee['prenom'].':'.$donnee['nom'].':'.$donnee['adresse'].'<br/>'; $base = null; ?> </html>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

19 oct. 2015, 14:26

Soit tu fait une boucle while avec un fetch dedans
Soit tu fais un fetchAll et une boucle foreach ensuite
Quand tout le reste a échoué, lisez le mode d'emploi...