Récupérer tous les enregistrements d'une base de données
Résolu/Fermé
A voir également:
- Enregistrement base de données
- Formules excel de base - Guide
- Germain veut gérer les activités de son association avec une base de données. il a commencé à créer des tables dans un fichier, mais il n’est pas sûr du résultat. le fichier à télécharger contient uniquement le schéma de cette base de données. en l’état actuel, que peut-on en déduire ? - Forum Outlook
- Tnt base de données vide - Forum TNT / Satellite / Réception
- Gigaset ne reconnait plus sa base - Forum telephonie fixe
- Exemple base de données access à télécharger gratuit ✓ - Forum Logiciels
4 réponses
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
6 déc. 2019 à 12:25
6 déc. 2019 à 12:25
Bonjour,
Avant tout... je t'invite à lire (et à appliquer) le contenu de ces deux liens
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Ensuite, deux possibilités :
Soit tu fais une boucle "WHILE" en faisant le FETCH du résultat de ta requête
Soit tu fais directement un FETCHALL puis une boucle FOREACH
Vu que tu savais déjà qu'il fallait faire une boucle... je suis étonné que tu n'aies pas été capable de trouver (parmi les millions de tutos existant à ce sujet) de réponse sur internet (ou même juste dans ce forum)
Pour cette fois je vais te donner le code...histoire de ne pas perdre de temps et devoir revenir t'expliquer morceau par morceau..
mais sache que ce n'est pas comme ça qu'on fait ici... on est là pour aider.. par pour donner du code tout cuit !
1 - Fichier de connexion à la bdd avec activation des erreurs PDO
2 - Le code de ta page :
Avant tout... je t'invite à lire (et à appliquer) le contenu de ces deux liens
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Ensuite, deux possibilités :
Soit tu fais une boucle "WHILE" en faisant le FETCH du résultat de ta requête
Soit tu fais directement un FETCHALL puis une boucle FOREACH
Vu que tu savais déjà qu'il fallait faire une boucle... je suis étonné que tu n'aies pas été capable de trouver (parmi les millions de tutos existant à ce sujet) de réponse sur internet (ou même juste dans ce forum)
Pour cette fois je vais te donner le code...histoire de ne pas perdre de temps et devoir revenir t'expliquer morceau par morceau..
mais sache que ce n'est pas comme ça qu'on fait ici... on est là pour aider.. par pour donner du code tout cuit !
1 - Fichier de connexion à la bdd avec activation des erreurs PDO
<?php // Fichier de connexion à la bdd - cnxBdd.php // tu penseras à modifier les variables host, user, password et dbname pour correspondre à ton site try{ $bdd =new PDO('mysql:host=localhost; dbname=mabdd; charset=utf8', 'user', 'password'); // Activation des erreurs PDO $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); } ?>
2 - Le code de ta page :
<?php // au début de ton fichier php : //affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); // connexion à la bdd require_once "cnxBdd.php"; // tu places la connexion à ta bdd dans un fichier à par et tu en fais un include ou un require //préparation de la requête et des variables $sql = "SELECT * FROM membres ORDER BY nom, prenom"; //Execution de la requete try{ $requete = $bdd->prepare($sql) ; $requete->execute(); $arr_membres = $requete->fetchAll(); // on stocke le resultat de la requete dans un array }catch(Exception $e){ // en cas d'erreur dans la requete: echo " Erreur ! ".$e->getMessage(); } // ... le reste de ton code php si il y en a // puis fin du PHP. maintenant on fait le html ?> <!-- le code html --> <html> <head> <meta charset="utf-8"> <title> Titre de ta page </title> <!-- autres balises meta et include CSS ... --> </head> <body> <!-- Le code HTML de ta page si il y en a avant ta liste déroulante --> <select name="nationalite"> <?php if(!empty($arr_membres)){ // on s'assure que la variable n'est pas vide foreach($arr_membres as $M){ // on boucle dessus à l'aide d'un foreach echo '<option value="'.$M['id'].'">'$M['nom'] . ' ' . $M['prenom'].'</option>'; // on affiche les fonnées } } ?> </select> <!-- Suite de ton code html ... --> </body> </html>
Bonjour,
concernant la connexion j'ai le même fichier de connexion à la bdd et je n'ai pas de soucis car j'ai déjà des requêtes de sélection, de mise à jour et de suppression qui fonctionnent normalement.
en reprenant la proposition de Jordane45 suivante :
j'ai le message suivant
la ligne 107 correspond à :
j'ai essayé plusieurs modifs mais rien ne marche !!
concernant la connexion j'ai le même fichier de connexion à la bdd et je n'ai pas de soucis car j'ai déjà des requêtes de sélection, de mise à jour et de suppression qui fonctionnent normalement.
en reprenant la proposition de Jordane45 suivante :
$sql = "SELECT * FROM membres ORDER BY nom, prenom"; try { $requete = $cnx->prepare($sql); $requete->execute(); $arr_membres = $requete->fetchAll();// on stocke le resultat de la requete dans un array } catch(Exception $e){ // en cas d'erreur dans la requete: echo " Erreur ! ".$e->getMessage(); } if(!empty($arr_membres)){ // on s'assure que la variable n'est pas vide foreach($arr_membres as $M){ // on boucle dessus à l'aide d'un foreach echo '<option value="'.$M['id'].'">'$M['nom'] . ' ' . $M['prenom'].'</option>'; // on affiche les fonnées } } ?> </select>
j'ai le message suivant
Parse error: syntax error, unexpected '$M' (T_VARIABLE), expecting ',' or ';' in C:\Weblocal\Sites\Jumelage\fr\membres.php on line 107
la ligne 107 correspond à :
echo '<option value="'.$M['id'].'">'$M['nom'] . ' ' . $M['prenom'].'</option>'; // on affiche les données
j'ai essayé plusieurs modifs mais rien ne marche !!
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
11 déc. 2019 à 14:13
11 déc. 2019 à 14:13
Un oublie de "point"
echo '<option value="'.$M['id'].'">' . $M['nom'] . ' ' . $M['prenom'].'</option>';