Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 11/03/2010, 22h41   #1
Membre actif
 
Inscription : avril 2008
Messages : 526
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 526
Points : 169
Points : 169
Par défaut affichage de tableaux

Bonjour, j'ai deux tables :

Code :
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 
);
Dans le but d'avoir un tableau de résultats sous la forme :

IdEtudiant NomEtudiant PrenomEtudiant Matière1 Matière2 ...

avec Matière1 Matière2 ... correspondant à ma variable moy.

J'ai réalisé le code suivant :

Code :
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>';
J'arrive bien à récupérer ma ligne d'entête, ainsi que les noms, prenoms et IDetudiant des étudiants de ma formation.
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.
stefsas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2010, 22h54   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Fais un affichage de ta requete $sqlmoy à chaque tour de boucle pour voir a quoi elle ressemble.

Au passage les parentheses pour encadrer la condition du WHERE ne servent pas et tu n'as pas besoin d'apostrophes autour d'un nombre.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 04h51.


 
 
 
 
Partenaires

Hébergement Web