Recuperation des données dans deux tables

Signaler
Messages postés
20
Date d'inscription
dimanche 15 février 2015
Statut
Membre
Dernière intervention
26 juillet 2018
-
Messages postés
31083
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 janvier 2021
-
Bonjour,
J'ai un souci sur mon projet.
j'ai quatre tables dans mon BDD SQL:
Une table "matieres" (id , nom )
Une table "eleves"(id, nom, prenom.)
Une table "notes" (id, id_eleve, id_matiere,id_ue, note1, note2)
Une table "UE" (id, nom_ue)
Et mon souci c'est que je sais pas comment afficher mes donnée dans la table comme cet apercu ci-dessous:


Juste une idée svp
Merci d'avance

1 réponse

Messages postés
31083
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 janvier 2021
342
Bonjour,

Premièrement, il va falloir faire une requête SQL avec JOINTURE
Un truc du genre
SELECT  N.*
     ,M.nom as matiere
    , concat(E.nom , " ", E.prenom) as nom_eleve
   , U.nom_ue
FROM notes N
LEFT JOIN  matieres M ON M.id = N.id_matiere
LEFT JOIN eleves E  ON E.id = N.id_eleve
LEFT JOIN UE  U ON U.id = N.id_ue


Ensuite, il faudra, à l'aide de BOUCLES php, parcourir le résultat de cette requête pour générer l'affichage désiré.

Moi je commencerai par créer un array associatif un peu mieux organisé que celui généré par la requête...
un truc du genre
// $result: array issu de ta requête SQL
// $newArr : array restructuré pour facilité son utilisation 

$newArr = array();
foreach($result as $R){
  $newArr[$R['matiere']][$R['nom_ue']][$R['nom_eleve']] = array("Note1"=>$R['Note1'],"Note2"=>$R['Note2']);
}