Remplir un array avec les résultats d'une requête
Résolu
emrh
Messages postés
439
Statut
Membre
-
jordane45 Messages postés 40050 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 40050 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>';
}
?>