Oui !
Je vais créer une **page dédiée** qui affiche la liste des élèves avec
leurs notes, avec un **filtrage par classe et niveau**.
🔹 **Technologies utilisées** : HTML, Tailwind CSS, PHP et MySQL.
🔹 **Fonctionnalités** :
✅ Liste des élèves avec leurs notes.
✅ Filtrage dynamique par **classe** et **niveau** (primaire/secondaire).
✅ Professeur connecté ne voit que son niveau.
## **📌 1️⃣Base de données (`eleves.sql`)**
D’abord, crée une table `eleves` dans ta base MySQL :
```sql
CREATE DATABASE gestion_notes ;
USE gestion_notes ;
CREATE TABLE eleves (
Id INT AUTO_INCREMENT PRIMARY KEY,
Nom VARCHAR(100),
Classe VARCHAR(50),
Niveau ENUM(‘primaire’, ‘secondaire’),
Note_cours FLOAT,
Note_compo FLOAT,
Coefficient INT
);
```
**Exemple d’insertion de données :**
```sql
INSERT INTO eleves (nom, classe, niveau, note_cours, note_compo,
coefficient) VALUES
(‘Jean Mbala’, ‘6ème A’, ‘primaire’, 12, 14, 3),
(‘Marie Kanza’, ‘3ème B’, ‘secondaire’, 10, 16, 4),
(‘Michel Ntumba’, ‘6ème A’, ‘primaire’, 15, 13, 3),
(‘Alice Lombo’, ‘3ème B’, ‘secondaire’, 11, 14, 4) ;
```
## **📌 2️⃣Page `liste_eleves.php` (Affichage & Filtrage)**
Ce fichier affiche **tous les élèves** et permet de filtrer par **classe et
niveau**.
```php
< ?php
$servername = « localhost » ;
$username = « root » ; // À changer si nécessaire
$password = « « ;
$dbname = « gestion_notes » ;
// Connexion à la base de données
$conn = new mysqli($servername, $username, $password, $dbname) ;
If ($conn->connect_error) {
Die(« Erreur de connexion : « . $conn->connect_error) ;
// Niveau du professeur (primaire ou secondaire)
$niveau_prof = ‘primaire’ ; // Récupérer dynamiquement selon le prof
connecté
// Récupérer les classes disponibles pour le niveau du prof
$sql_classes = « SELECT DISTINCT classe FROM eleves WHERE
niveau=’$niveau_prof’ » ;
$result_classes = $conn->query($sql_classes) ;
// Gestion du filtrage par classe
$classe_filtre = isset($_GET[‘classe’]) ? $_GET[‘classe’] : « « ;
$sql_eleves = « SELECT * FROM eleves WHERE niveau=’$niveau_prof’ » ;
If ( !empty($classe_filtre)) {
$sql_eleves .= « AND classe=’$classe_filtre’ » ;
$result_eleves = $conn->query($sql_eleves) ;
?>
< !DOCTYPE html>
<html lang= »fr »>
<head>
<meta charset= »UTF-8 »>
<meta name= »viewport » content= »width=device-width, initial-
scale=1.0 »>
<title>Liste des Élèves</title>
<script src= »https://cdn.tailwindcss.com »></script>
</head>
<body class= »bg-gray-100 p-6 »>
<div class= »max-w-4xl mx-auto bg-white p-6 rounded-lg shadow-lg »>
<h2 class= »text-cyan-600 text-2xl font-bold text-center mb-
4 »>Liste des Élèves</h2>
< !—Formulaire de filtrage
<form method= »GET » class= »mb-4 »>
<label class= »block text-gray-700 font-semibold »>Filtrer par
classe :</label>
<select name= »classe » class= »w-full p-2 border rounded text-
gray-800 »>
<option value= » »>Toutes les classes</option>
< ?php while ($row = $result_classes->fetch_assoc()) { ?>
<option value= »< ?= $row[‘classe’] ?> » < ?= ($classe_filtre
== $row[‘classe’]) ? « selected » : « « ?>>
< ?= $row[‘classe’] ?>
</option>
< ?php } ?>
</select>
<button type= »submit » class= »w-full px-4 py-2 bg-cyan-500
text-white rounded mt-2 »>Filtrer</button>
</form>
< !—Table des élèves
<table class= »w-full border-collapse border border-gray-300 »>
<thead>
<tr class= »bg-gray-200 »>
<th class= »border border-gray-300 p-2 »>Nom</th>
<th class= »border border-gray-300 p-2 »>Classe</th>
<th class= »border border-gray-300 p-2 »>Note Cours</th>
<th class= »border border-gray-300 p-2 »>Composition</th>
<th class= »border border-gray-300 p-2 »>Coefficient</th>
<th class= »border border-gray-300 p-2 »>Moyenne</th>
</tr>
</thead>
<tbody>
< ?php while ($row = $result_eleves->fetch_assoc()) {
$moyenne = ($row[‘note_cours’] + $row[‘note_compo’]) / 2 ;
?>
<tr class= »bg-white »>
<td class= »border border-gray-300 p-2 »>< ?=
$row[‘nom’] ?></td>
<td class= »border border-gray-300 p-2 »>< ?=
$row[‘classe’] ?></td>
<td class= »border border-gray-300 p-2 »>< ?=
$row[‘note_cours’] ?>/20</td>
<td class= »border border-gray-300 p-2 »>< ?=
$row[‘note_compo’] ?>/20</td>
<td class= »border border-gray-300 p-2 »>< ?=
$row[‘coefficient’] ?></td>
<td class= »border border-gray-300 p-2 font-bold »>< ?=
number_format($moyenne, 2) ?>/20</td>
</tr>
< ?php } ?>
</tbody>
</table>
</div>
</body>
</html>
```
## **📌 Explication du Code**
✔ **Connexion MySQL** pour récupérer les élèves.
✔ **Récupération des classes** du niveau enseigné par le prof connecté.
✔ **Formulaire de filtrage** pour voir les élèves d’une classe spécifique.
✔ **Affichage dans un tableau** avec :
- **Nom de l’élève**
- **Classe**
- **Note de cours**
- **Note de composition**
- **Coefficient**
- **Moyenne calculée**
## **📌 Résumé**
✅ Une **base de données MySQL** pour stocker les élèves.
✅ Une **page `liste_eleves.php`** qui affiche les élèves avec un **filtrage
par classe**.
✅ Le **prof connecté** ne voit que son **niveau (primaire ou
secondaire)**.
🚀 **Tu veux ajouter une option pour modifier les notes directement sur
cette page ?**