Remplir un array avec les résultats d'une requête
Résolu
emrh
Messages postés
427
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour à tous,
Est-ce la bonne méthode pour remplir un tableau avec des valeurs en provenance d'une base de
données ?
(J'ai l'impression que ces qq lignes ne font pas très pro... Au départ j'avais écrit ma boucle avec
une variable $i =1 et dans la boucle un $i = $i + 1 pour renseigner $libelle[$i] = $valeur['designation'];)
Merci d'avance pour vos conseils...
Ensuite, le "problème" c'est que pour récupérer le bon libellé, je suis obligé de faire ça ;
EDIT : À l'avenir, l'utilisateur peut être amené à supprimer une prestation à condition que son id_prestation (clé étrangère) ne soit pas utilisée dans une autre table. Je voudrais donc pour sécuriser mes données affecter dans mon array le bon id_prestation à la bonne désignation. Je ne sais pas comment faire...
Est-ce la bonne méthode pour remplir un tableau avec des valeurs en provenance d'une base de
données ?
(J'ai l'impression que ces qq lignes ne font pas très pro... Au départ j'avais écrit ma boucle avec
une variable $i =1 et dans la boucle un $i = $i + 1 pour renseigner $libelle[$i] = $valeur['designation'];)
Merci d'avance pour vos conseils...
// On récupère les désignations des prestations : $req_designations = $bdd->query('SELECT designation FROM prestations'); $prestations = $req_designations->fetchAll(); // Affectation des libellés récupérés dans un tableau $libelle $libelle=array(); foreach($prestations as $valeur) { $libelle[] = $valeur['designation']; }
Ensuite, le "problème" c'est que pour récupérer le bon libellé, je suis obligé de faire ça ;
<h3>Prestations : </h3> <?php foreach ($data_prestations as $valeur2) { echo $libelle[$valeur2['id_prestation']-1]; }
EDIT : À l'avenir, l'utilisateur peut être amené à supprimer une prestation à condition que son id_prestation (clé étrangère) ne soit pas utilisée dans une autre table. Je voudrais donc pour sécuriser mes données affecter dans mon array le bon id_prestation à la bonne désignation. Je ne sais pas comment faire...
A voir également:
- Remplir un tableau php
- Tableau word - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Organigramme a remplir word - Guide
- Imprimer un tableau excel - Guide
3 réponses
Bonjour
Ton code est correct mais tu pourrais te passer de ces quelques lignes
Pour ca, renseignes toi sur les différents modes de ferch qui existent.
(Par exemple PDO::FETCH_UNIQUE)
https://phpdelusions.net/pdo/fetch_modes#FETCH_UNIQUE
Ton code est correct mais tu pourrais te passer de ces quelques lignes
$libelle=array(); foreach($designations as $valeur) { $libelle[$valeur['id_prestation']] = $valeur['designation']; }
Pour ca, renseignes toi sur les différents modes de ferch qui existent.
(Par exemple PDO::FETCH_UNIQUE)
https://phpdelusions.net/pdo/fetch_modes#FETCH_UNIQUE
Après plusieurs tentatives et nombreux tests, j'ai trouvé ça qui semble fonctionner :
Mon code vous semble correct ?
// On récupère les désignations des prestations : $req_prestations = $bdd->query('SELECT * FROM prestations'); $designations = $req_prestations->fetchAll(); // Affectation des libellés récupérés dans un tableau $libelle $libelle=array(); foreach($designations as $valeur) { $libelle[$valeur['id_prestation']] = $valeur['designation']; }
<h3>Prestations : </h3> <?php foreach ($data_prestations as $valeur2) { echo $libelle[$valeur2['id_prestation']]; echo $valeur2['prix']; echo $valeur2['quantites'] . '<br>'; } ?>
Mon code vous semble correct ?
Merci Jordane pour cette confirmation et cette info, je vais jeter un œil tout de suite !
Je viens de relire ton code complet ..
En fait ...
En fait ...
$req_prestations = $bdd->query('SELECT * FROM prestations'); $designations = $req_prestations->fetchAll();
<?php foreach ($designations as $valeur2) { echo $valeur2['id_prestation']; echo $valeur2['designation']; echo $valeur2['prix']; echo $valeur2['quantites'] . '<br>'; } ?>