Page 1 sur 1

dupplication de donnée récupérer de ma bdd

Posté : 22 oct. 2022, 23:13
par minwolf999
Bonsoir, j'ai un problème avec ma récupération de donnée de ma BDD voilà dès que j'ai plusieurs compétences de valider je me met à avoir mon appréciation qui se démultiplie. Savez vous comment faire pour l'éviter ? (dsl ce n'est absolument pas clair mais voilà le code de la page et le résultat de ce qui est obtenu par un var_dump($appreciation)

Code : Tout sélectionner

<?php $eleven = $_POST['submit']; $sth = $db->prepare(' SELECT e.id, e.nom, e.classe, c.id as idCompetence, c.nom as nomCompetence, c.image_path as imageCompetence, cat.id as idCategorie, cat.nom as nomCategorie, ea.appreciation as Appreciation FROM eleve e LEFT JOIN eleve_competence ec ON ec.eleve_id = e.id LEFT JOIN competence c ON c.id = ec.competence_id LEFT JOIN categorie_competence cat ON cat.id = c.categorie_competence_id LEFT JOIN eleve_appreciation ea ON ea.eleve_id = e.id WHERE e.nom = :eleven '); $sth->execute(['eleven' =>$eleven]); // Récupération de toutes les lignes d'un jeu de résultats $results = $sth->fetchAll(); foreach($results as $result) $classe = $result['classe']; $competences = []; foreach ($results as $row) { if (!array_key_exists($row['nomCategorie'], $competences)) { $competences[$row['nomCategorie']] = []; } $competences[$row['nomCategorie']][] = $row; } $competencef =""; foreach ($competences as $competenceLabel => $competenceRows): $competencef .= "<h3><b><i>$competenceLabel</i></b></h3>"; foreach ($competenceRows as $competence): if (!empty($competence['imageCompetence'])){ $catcompetence = $competence['imageCompetence']; } $competencef .= "<blockquote>".ucfirst($competence['nomCompetence']). "&nbsp;"."&nbsp;"."&nbsp;"."&nbsp;"."<img src=$catcompetence width='150'>"."</blockquote>" ; endforeach; endforeach; $appreciation = ""; if(isset($result['Appreciation'])){ foreach ($results as $appreciation): var_dump($appreciation); //$appreciation .= "<blockquote>".$result['Appreciation']."<br></blockquote>"; endforeach; } die;
C:\wamp64\www\sdz\demo\observer\pdf\recuparation_bdd.php:50:
array (size=18)
'id' => string '6' (length=1)
0 => string '6' (length=1)
'nom' => string 'Albert' (length=6)
1 => string 'Albert' (length=6)
'classe' => string 'Gs' (length=2)
2 => string 'Gs' (length=2)
'idCompetence' => string '3' (length=1)
3 => string '3' (length=1)
'nomCompetence' => string 'savoir parler' (length=13)
4 => string 'savoir parler' (length=13)
'imageCompetence' => string 'upload/63545513b3a09banniere.jpg' (length=32)
5 => string 'upload/63545513b3a09banniere.jpg' (length=32)
'idCategorie' => string '1' (length=1)
6 => string '1' (length=1)
'nomCategorie' => string 'Mobiliser le langage dans toutes ses dimensions' (length=47)
7 => string 'Mobiliser le langage dans toutes ses dimensions' (length=47)
'Appreciation' => string 'Bon élève !' (length=13)
8 => string 'Bon élève !' (length=13)

C:\wamp64\www\sdz\demo\observer\pdf\recuparation_bdd.php:50:
array (size=18)
'id' => string '6' (length=1)
0 => string '6' (length=1)
'nom' => string 'Albert' (length=6)
1 => string 'Albert' (length=6)
'classe' => string 'Gs' (length=2)
2 => string 'Gs' (length=2)
'idCompetence' => string '5' (length=1)
3 => string '5' (length=1)
'nomCompetence' => string 'savoir dessiner' (length=15)
4 => string 'savoir dessiner' (length=15)
'imageCompetence' => string 'upload/635456458a2e8birthday-glyph-icon-silhouette-symbol-260nw-768772582.jpeg' (length=78)
5 => string 'upload/635456458a2e8birthday-glyph-icon-silhouette-symbol-260nw-768772582.jpeg' (length=78)
'idCategorie' => string '3' (length=1)
6 => string '3' (length=1)
'nomCategorie' => string 'Agir, s'exprimer, comprendre à travers l'éducation artistique' (length=63)
7 => string 'Agir, s'exprimer, comprendre à travers l'éducation artistique' (length=63)
'Appreciation' => string 'Bon élève !' (length=13)
8 => string 'Bon élève !' (length=13)

Re: dupplication de donnée récupérer de ma bdd

Posté : 22 oct. 2022, 23:18
par or 1
ne pas faire une seule requête, mais faire une requête pour les données de l'élève, une pour ces compétences, une pour ces appréciations.

Re: dupplication de donnée récupérer de ma bdd

Posté : 22 oct. 2022, 23:35
par minwolf999
ne pas faire une seule requête, mais faire une requête pour les données de l'élève, une pour ces compétences, une pour ces appréciations.
Donc il faut que je fasse

Code : Tout sélectionner

$query = $db->prepare(' SELECT ea.appreciation as Appreciation FROM eleve_appreciation WHERE ea.id = :idea '); $query->execute(['idea' => $id]); $nice = $sth->fetchAll();
J'ai mis

Code : Tout sélectionner

$id = $result['id'];
juste après le

Code : Tout sélectionner

$classe = $result['classe'];
du code premier message

ai-je fais quelque chose de travers pour le moment ?

Re: dupplication de donnée récupérer de ma bdd

Posté : 23 oct. 2022, 01:33
par minwolf999
C'est bon tout marche parfaitement merci pour ton aiguillage dans mon problème