Recuperation des données dans deux tables

Messages postés
20
Date d'inscription
dimanche 15 février 2015
Dernière intervention
26 juillet 2018
- - Dernière réponse : jordane45
Messages postés
23593
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 décembre 2018
- 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

Messages postés
23593
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 décembre 2018
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.