Bonjour à tous
depuis une semaine je travaille sur la calcule de somme par matiere et par module mais je n'arrive pas a faire ce calcule
pourriez-vous m'aider
Merci d'avance
Bonjour à tous
depuis une semaine je travaille sur la calcule de somme par matiere et par module mais je n'arrive pas a faire ce calcule
pourriez-vous m'aider
Merci d'avance
SAlut ,
On pourrait avoir quelques infos supplémentaires ? du style le calcul se fait en PHP ? directement par un SGBD ? un peu de code ?
merci
Merci RideKick de ta reponse rapide
se sont les tables de ma base de donne
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 Module([IdModule,NomModule) ______________1_______Formation ______________2_______Math _____________... ______... Matiere(IdMatiere,IdModule,Matiere_Nom,Coefficient) ___________1________2________Mat-x_______3 ___________2________2________Mat-y_______4 ___________3________2________Mat-z_______3 ___________4________2________Mat-u_______3 ___________...________...________..._________... ___________5________1________Frnacais_____4 ___________6________1________Englais______3 ___________7________1_______Espagnole_____3 etc.............. Etudiant(IdEtudiant,__Nom,___ Prénom______Niveau) ________1_________Beegees____Bernard______1erAn ________2_________Martin______Louis________2emeAn ________...__________...________...__________4emeAn etc.......... Note(IdNote_____idMatiere_____idetudiant_____Notes ) ______1___________1____________1__________12 ______2___________1____________2__________10 ______3___________1____________3__________12 ______? ___________?_____________?__________? etc.........
En éspérant que vous pourrez m'aider
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 ----------------|nom élève|----|nom élève 2|---|nom élève 3|---|nom élève 4|etc... ----------------------------------------------------------------------------- nom matiere 1|--|note élève 1|--|note élève 2|--|note élève 3|--|note élève 4|etc.. nom matiere 2|--|note élève 1|--|note élève 2|--|note élève 3|--|note élève 4|etc.. nom matiere 3|--|note élève 1|--|note élève 2|--|note élève 3|--|note élève 4|etc.. nom matiere 4|--|note élève 1|--|note élève 2|--|note élève 3|--|note élève 4|etc.. sommematiere |--|------------|--|------------|--|------------|--|------------|
Hummmm
Tu as pas la structure des tables comme ça je peux les creer de mon cote et m'appuyer dessus pour les requêtes ? (avec quelques données si possible lol)
Re-bonjour
en faite c'est la structure de ma base de donnee ,j'ai seulement mis des enregistrement ,quoiTu as pas la structure des tables comme ça je peux les creer de mon cote et m'appuyer dessus pour les requêtes ? (avec quelques données si possible lol)
je sollicite votre aide pour reussir le code
Merci d'avance
Bah justement , dans PHPMYADmin , tu fais "Exporter" et tu me fais passer le tout que je puisse de mon cote tester ce qu'on va tenter de coder
Merci RideKick
voici le fichier de ma BDD
Merci encore de votre aide
lol , y'a pas de données dans "notes"
Bon le principe je pense :
Sélectionner pour chaque matière la somme des notes (ou la moyenne) , donc on va faire dans un premier temps un SELECT sur la table matiere avec une jointure sur la table note
BOn alors une petite requete sur ce que je viens de dire :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT m.titre, SUM( n.note ) AS SommeNote FROM matiere m LEFT JOIN notes n ON n.idmatiere = m.idmatiere GROUP BY m.idmatiere
LA on fait la somme , pour faire la moyenne suffit de mettre AVG a la place de SUM.
Remarque importante : le Group by est obligatoire sinon il te fais la somme de toute la table.
Merci RideKick
Ben j'ai testee la requete sous phpMyadmin et ca marche nikle
alors j'aimerai mettre aussi un peu de cooperation au niveau de php mais ben ca marche pas
Merci de votre aide
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 <?php $host='*****'; $user='*****'; $pass=''; $dbase='*******'; // Connexion au serveur $connexion = mysql_connect($host,$user,$pass)or die ("Erreur de connexion"); mysql_select_db($dbase,$connexion)or die ("Erreur de connexion base"); $query=SELECT m.titre, SUM( n.note ) AS SommeNote FROM matiere m LEFT JOIN notes n ON n.idmatiere = m.idmatiere GROUP BY m.idmatiere $result = mysql_query($query)or exit('Erreur: '.mysql_error()); ?> <table bgcolor="" width="50" border="1" cellspacing="1" cellpadding="1"> <tr> <td bgcolor=""><div style="text-align: center"><b>Code_Note</b></div></td> <td bgcolor=""><div style="text-align: center"><b>Code_Etudaint</b></div></td> <td bgcolor=""><div style="text-align: center"><b>Nom_Etudiant</b></div></td> <td bgcolor=""><div style="text-align: center"><b>Nom_Matiere</b></div></td> <td bgcolor=""><div style="text-align: center"><b>Notes</b></div></td> </tr>'; <?php while ($row = mysql_fetch_array($result)) { ?> <tr> <td bgcolor="#CCCCCC"> <?php echo $row["idnote"] ?> </td> <td><div align="center"><?php echo $row['idetudiant'] ?></div></td> <td><div align="center"> <?php echo $row['NomEtud'] ?></div></td> <td><div align="center"><?php echo $row['titre'] ?></div></td> <td><div align="center"> <?php echo$row['note'] ?></div></td> </tr> <?php } ?>
marchera beaucoup mieux
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $query="SELECT m.titre, SUM( n.note ) AS SommeNote FROM matiere m LEFT JOIN notes n ON n.idmatiere = m.idmatiere GROUP BY m.idmatiere";
Code : Sélectionner tout - Visualiser dans une fenêtre à part Erreur: Champ 'NomEtud' inconnu dans field listMerci d'avance
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 $connexion = mysql_connect($host,$user,$pass)or die ("Erreur de connexion"); mysql_select_db($dbase,$connexion)or die ("Erreur de connexion base"); $query="SELECT idnote,idetudiant,NomEtud,m.titre, SUM( n.note ) AS SommeNote FROM matiere m LEFT JOIN notes n ON n.idmatiere = m.idmatiere GROUP BY m.idmatiere"; $result = mysql_query($query)or exit('Erreur: '.mysql_error()); ?> <table bgcolor="" width="50" border="1" cellspacing="1" cellpadding="1"> <tr> <td bgcolor=""><div style="text-align: center"><b>Code_Note</b></div></td> <td bgcolor=""><div style="text-align: center"><b>Code_Etudaint</b></div></td> <td bgcolor=""><div style="text-align: center"><b>Nom_Etudiant</b></div></td> <td bgcolor=""><div style="text-align: center"><b>Nom_Matiere</b></div></td> <td bgcolor=""><div style="text-align: center"><b>Notes</b></div></td> </tr>'; <?php while ($row = mysql_fetch_array($result)) { ?> <tr> <td bgcolor="#CCCCCC"> <?php echo $row["idnote"] ?> </td> <td><div align="center"><?php echo $row['idetudiant'] ?></div></td> <td><div align="center"> <?php echo $row['NomEtud'] ?></div></td> <td><div align="center"><?php echo $row['titre'] ?></div></td> <td><div align="center"> <?php echo$row['note'] ?></div></td> </tr> <?php } ?>
Normal tu essaie de recuperer des infos dans une table que tu n'as pas mentionné:
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT n.idnote,e.idetudiant,e.NomEtud,m.titre, SUM( n.note ) AS SommeNote FROM matiere m , etudiant e LEFT JOIN notes n ON n.idmatiere = m.idmatiere GROUP BY m.idmatiere";
mea culpa cette requete ne marche pas , mieux vaut proceder ainsi :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT n.idnote, n.idetudiant, e.NomEtud, m.titre, SUM( n.note ) AS SommeNote FROM matiere m LEFT JOIN notes n ON n.idmatiere = m.idmatiere LEFT JOIN etudiant e ON e.idetudiant = n.idetudiant GROUP BY m.idmatiere
Merci RideKick
mais SommeNote n'est pas afficher dans le tableau
Merci d'avance
Surement parce que tu ne l'as pas demandé ?
Il faudrait peut etre le rajouter dans ton html ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <tr> <td bgcolor="#CCCCCC"> <?php echo $row["idnote"] ?> </td> <td><div align="center"><?php echo $row['idetudiant'] ?></div></td> <td><div align="center"> <?php echo $row['NomEtud'] ?></div></td> <td><div align="center"><?php echo $row['titre'] ?></div></td> <td><div align="center"> <?php echo$row['note'] ?></div></td> </tr>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <tr> <td bgcolor="#CCCCCC"> <?php echo $row["idnote"] ?> </td> <td><div align="center"><?php echo $row['idetudiant'] ?></div></td> <td><div align="center"> <?php echo $row['NomEtud'] ?></div></td> <td><div align="center"><?php echo $row['titre'] ?></div></td> <td><div align="center"> <?php echo$row['note'] ?></div></td> <td><div align="center"> <?php echo$row['SommeNote'] ?></div></td> </tr>
Bonjour RideKick
Merci beaucoup de votre aide
j'aimerai calculer la moyenne des matiere par module
j'ai ajoutee la Fonction AVG mais ca marche pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $query="SELECT n.idnote,n.note, n.idetudiant, e.NomEtud, m.titre, AVG( n.note ) AS SommeNote FROM matiere m LEFT JOIN notes n ON n.idmatiere = m.idmatiere LEFT JOIN etudiant e ON e.idetudiant = n.idetudiant GROUP BY m.idmatiere"; $result = mysql_query($query)or exit('Erreur: '.mysql_error());
Merci d'avance
Normal la tu calcule la moyenne par matiere .....
La bonne requête :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT n.idnote, n.note, n.idetudiant, e.NomEtud, mo.nom AS NomModule, m.titre as NomMatiere, AVG( n.note ) AS SommeNote FROM matiere m LEFT JOIN notes n ON n.idmatiere = m.idmatiere LEFT JOIN etudiant e ON e.idetudiant = n.idetudiant LEFT JOIN module mo ON m.idmodule = mo.idmodule GROUP BY m.idmatiere
Merci RideKick
j'ai un erreur concernant le champ Notes
Merci d'avance
Faudrait penser peut être a réfléchir tu crois pas ?
Apparemment titre n'existe pas .....donc si tu regarde dans la requête des modules , j'ai changé titre en NomMatiere, des fois c'est pas plus compliqué suffit de se donner la peine ....
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager