Bonjour, j'ai deux tables :
Dans le but d'avoir un tableau de résultats sous la forme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 CREATE TABLE etudiant ( IdEtudiant VARCHAR(20) NOT NULL, Civilite VARCHAR(10) NOT NULL, NomEtudiant VARCHAR(20) NOT NULL, PrenomEtudiant VARCHAR(20) NOT NULL, NomFormation VARCHAR(20) NOT NULL, DateFormation INT NOT NULL, FOREIGN KEY (NomFormation,DateFormation) REFERENCES formation(NomFormation,DateFormation) ); CREATE TABLE note ( IdEtudiant VARCHAR(20) NOT NULL, NomModule VARCHAR(20) NOT NULL, NomFormation VARCHAR(20) NOT NULL, DateFormation INT NOT NULL, NumSemestre VARCHAR(5) NOT NULL, PRIMARY KEY(IdEtudiant,NomModule,NomFormation,DateFormation,NumSemestre), FOREIGN KEY (IdEtudiant) REFERENCES etudiant(IdEtudiant), FOREIGN KEY (NomModule,NomFormation,DateFormation,NumSemestre) REFERENCES modules(NomModule,NomFormation,DateFormation,NumSemestre), NoteExam float NOT NULL, NoteTp float, moy float );
IdEtudiant NomEtudiant PrenomEtudiant Matière1 Matière2 ...
avec Matière1 Matière2 ... correspondant à ma variable moy.
J'ai réalisé le code suivant :
J'arrive bien à récupérer ma ligne d'entête, ainsi que les noms, prenoms et IDetudiant des étudiants de ma formation.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 //On récupère les valeurs entrées par l'utilisateur : $annee=$_POST['ANNEE']; $formation=$_POST['FORMATION']; $semestre=$_POST['SEMESTRE']; //On récupère les modules de la formation et du semestre sélectionnés $sqlmodules = "SELECT NomModule FROM modules WHERE (NomFormation='".$formation."' AND DateFormation='".$annee."' AND NumSemestre='".$semestre."')"; $reqmodules = mysql_query($sqlmodules) or die('Erreur de la requête sur la table module!<br />'.$sqlmodules.'<br />'.mysql_error()); //On récupère les noms, prenoms et IDetudiant de la formation et du semestre sélectionnés $sqletud = "SELECT IdEtudiant,UPPER(NomEtudiant),PrenomEtudiant FROM etudiant WHERE (NomFormation='".$formation."' AND DateFormation='".$annee."') /*ORDER BY NomEtudiant,PrenomEtudiant*/"; $reqetud = mysql_query($sqletud) or die('Erreur de la requête sur la table etudiant!<br />'.$sqletud.'<br />'.mysql_error()); echo '<div id="decalage">'; echo '<table border="0" bgcolor="#333333" cellpadding="10" cellspacing="3">'."\n"; // première ligne on affiche les titres echo '<tr>'; echo '<td bgcolor="#ff5000" align="center" ><b><u>IDetudiant</u></b></td>'; echo '<td bgcolor="#ff5000" align="center" ><b><u>Nom étudiant</u></b></td>'; echo '<td bgcolor="#ff5000" align="center" ><b><u>Prenom étudiant</u></b></td>'; while ($data = mysql_fetch_array($reqmodules)) { echo '<td bgcolor="#ff9800" align="center" ><b><u>'.$data["NomModule"].'</u></b></td>'; } while ($data2 = mysql_fetch_array($reqetud)) { $sqlmoy = "SELECT moy FROM note WHERE (IdEtudiant='".$data2["IdEtudiant"]."')"; $reqmoy = mysql_query($sqlmoy) or die('Erreur de la requête sur la table mote!<br />'.$sqlmoy.'<br />'.mysql_error()); echo '<tr>'; echo '<td bgcolor="#ffffff" align="center">'.$data2["IdEtudiant"].'</td>'; echo '<td bgcolor="#ffffff" align="center">'.$data2["UPPER(NomEtudiant)"].'</td>'; echo '<td bgcolor="#ffffff" align="center">'.$data2["PrenomEtudiant"].'</td>'; while ($data3 = mysql_fetch_array($reqmoy)) { echo '<td bgcolor="#ffffff" align="center">'.$data3["moy"].'</td>'; } echo '</tr>'."\n"; } echo '</table>'; echo '</div>';
Mon pb est que je n'ai pas l'affichage des notes.
Si quelqu'un voit d'où vient le problème. Merci d'avance.
Partager