Recuperation des données dans deux tables

solomonn 20 Messages postés dimanche 15 février 2015Date d'inscription 26 juillet 2018 Dernière intervention - 26 juil. 2018 à 14:14 - Dernière réponse : jordane45 22099 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 17 août 2018 Dernière intervention
- 26 juil. 2018 à 15:21
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
Afficher la suite 

Votre réponse

1 réponse

jordane45 22099 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 17 août 2018 Dernière intervention - 26 juil. 2018 à 15:21
0
Merci
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']);
}

Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.