0% ont trouvé ce document utile (0 vote)
6 vues22 pages

Mini-application PHP MySQL : Apprenants et Filières

Résumé de la connexion aux bases de données MySQL

Transféré par

tigabadtest
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
6 vues22 pages

Mini-application PHP MySQL : Apprenants et Filières

Résumé de la connexion aux bases de données MySQL

Transféré par

tigabadtest
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Excellent 👌 !

Allons-y pas à pas pour créer une mini-application complète en PHP et MySQL avec 2 tables
reliées :

👉 Tables :

filiere (ex : Informatique, Électricité…)

apprenant (chaque apprenant appartient à une filière)

---

🏫 Mini-application : Gestion des Apprenants et Filières

---

1. Création de la base de données et des tables

Dans phpMyAdmin ou via MySQL :

CREATE DATABASE ecole;

USE ecole;

-- Table des filières


CREATE TABLE filiere (

id INT AUTO_INCREMENT PRIMARY KEY,

nom VARCHAR(100) NOT NULL

);

-- Table des apprenants

CREATE TABLE apprenant (

id INT AUTO_INCREMENT PRIMARY KEY,

nom VARCHAR(100) NOT NULL,

age INT NOT NULL,

filiere_id INT,

FOREIGN KEY (filiere_id) REFERENCES filiere(id)

);

---

2. Connexion à la base (fichier [Link])

<?php

$serveur = "localhost";

$utilisateur = "root";

$motdepasse = "";

$base = "ecole";
$conn = mysqli_connect($serveur, $utilisateur, $motdepasse, $base);

if (!$conn) {

die("Échec connexion : " . mysqli_connect_error());

?>

---

3. Formulaire pour ajouter une filière (ajout_filiere.php)

<!DOCTYPE html>

<html>

<head>

<title>Ajouter Filière</title>

</head>

<body>

<h2>Nouvelle Filière</h2>

<form method="post" action="">

Nom de la filière : <input type="text" name="nom">

<input type="submit" value="Enregistrer">

</form>

<?php
include("[Link]");

if ($_SERVER["REQUEST_METHOD"] == "POST") {

$nom = $_POST['nom'];

$sql = "INSERT INTO filiere (nom) VALUES ('$nom')";

if (mysqli_query($conn, $sql)) {

echo "Filière ajoutée avec succès !";

} else {

echo "Erreur : " . mysqli_error($conn);

?>

</body>

</html>

---

4. Formulaire pour ajouter un apprenant (ajout_apprenant.php)

<!DOCTYPE html>

<html>

<head>

<title>Ajouter Apprenant</title>

</head>
<body>

<h2>Nouvel Apprenant</h2>

<form method="post" action="">

Nom : <input type="text" name="nom"><br>

Âge : <input type="number" name="age"><br>

Filière :

<select name="filiere_id">

<?php

include("[Link]");

$res = mysqli_query($conn, "SELECT * FROM filiere");

while ($row = mysqli_fetch_assoc($res)) {

echo "<option value='".$row['id']."'>".$row['nom']."</option>";

?>

</select><br>

<input type="submit" value="Enregistrer">

</form>

<?php

if ($_SERVER["REQUEST_METHOD"] == "POST") {

$nom = $_POST['nom'];

$age = $_POST['age'];

$filiere_id = $_POST['filiere_id'];

$sql = "INSERT INTO apprenant (nom, age, filiere_id)


VALUES ('$nom', $age, $filiere_id)";

if (mysqli_query($conn, $sql)) {

echo "Apprenant ajouté avec succès !";

} else {

echo "Erreur : " . mysqli_error($conn);

?>

</body>

</html>

---

5. Liste des apprenants avec leur filière (liste_apprenants.php)

<!DOCTYPE html>

<html>

<head>

<title>Liste des Apprenants</title>

</head>

<body>

<h2>Liste des Apprenants</h2>

<?php
include("[Link]");

$sql = "SELECT [Link], [Link], [Link], [Link] AS filiere

FROM apprenant

JOIN filiere ON apprenant.filiere_id = [Link]";

$res = mysqli_query($conn, $sql);

echo "<table border='1'>

<tr><th>ID</th><th>Nom</th><th>Âge</th><th>Filière</th></tr>";

while ($row = mysqli_fetch_assoc($res)) {

echo "<tr>

<td>".$row['id']."</td>

<td>".$row['nom']."</td>

<td>".$row['age']."</td>

<td>".$row['filiere']."</td>

</tr>";

echo "</table>";

?>

</body>

</html>
---

✅ Résultat attendu

1. Tu ajoutes des filières (Informatique, Électricité, etc.).

2. Tu ajoutes des apprenants en choisissant une filière.

3. Tu consultes la liste des apprenants avec leur filière.

---

👉 Veux-tu que je continue ce mini-projet en ajoutant aussi :

La modification et suppression d’un apprenant ?

Ou bien une page d’accueil avec menu qui relie toutes ces pages ?

Parfait Moussa 👌 On va améliorer notre mini-projet PHP & MySQL en ajoutant :

1. Un menu principal (page d’accueil) pour naviguer facilement.


2. La modification et la suppression des apprenants.

---

🏫 Suite du Mini-Projet PHP & MySQL

---

1. Page d’accueil avec menu ([Link])

<!DOCTYPE html>

<html>

<head>

<title>Gestion des Apprenants</title>

</head>

<body>

<h1>Bienvenue dans l'application</h1>

<ul>

<li><a href="ajout_filiere.php">Ajouter une Filière</a></li>


<li><a href="ajout_apprenant.php">Ajouter un Apprenant</a></li>

<li><a href="liste_apprenants.php">Voir la liste des Apprenants</a></li>

</ul>

</body>

</html>

---

2. Liste des apprenants avec actions (liste_apprenants.php)

On ajoute modifier et supprimer à côté de chaque apprenant.

<!DOCTYPE html>

<html>

<head>

<title>Liste des Apprenants</title>

</head>

<body>

<h2>Liste des Apprenants</h2>

<a href="[Link]">⬅ Retour au menu</a><br><br>

<?php

include("[Link]");
$sql = "SELECT [Link], [Link], [Link], [Link] AS filiere

FROM apprenant

JOIN filiere ON apprenant.filiere_id = [Link]";

$res = mysqli_query($conn, $sql);

echo "<table border='1' cellpadding='5'>

<tr><th>ID</th><th>Nom</th><th>Âge</th><th>Filière</th><th>Actions</th></tr>";

while ($row = mysqli_fetch_assoc($res)) {

echo "<tr>

<td>".$row['id']."</td>

<td>".$row['nom']."</td>

<td>".$row['age']."</td>

<td>".$row['filiere']."</td>

<td>

<a href='modifier_apprenant.php?id=".$row['id']."'>Modifier</a> |

<a href='supprimer_apprenant.php?id=".$row['id']."'

onclick=\"return confirm('Voulez-vous vraiment supprimer ?');\">Supprimer</a>

</td>

</tr>";

echo "</table>";

?>

</body>
</html>

---

3. Modifier un apprenant (modifier_apprenant.php)

<?php

include("[Link]");

$id = $_GET['id'];

// Récupérer les infos actuelles

$sql = "SELECT * FROM apprenant WHERE id=$id";

$res = mysqli_query($conn, $sql);

$apprenant = mysqli_fetch_assoc($res);

if ($_SERVER["REQUEST_METHOD"] == "POST") {

$nom = $_POST['nom'];

$age = $_POST['age'];

$filiere_id = $_POST['filiere_id'];

$sql = "UPDATE apprenant SET nom='$nom', age=$age, filiere_id=$filiere_id WHERE id=$id";

if (mysqli_query($conn, $sql)) {

echo "Apprenant modifié avec succès ! <a href='liste_apprenants.php'>Retour</a>";


exit;

} else {

echo "Erreur : " . mysqli_error($conn);

?>

<!DOCTYPE html>

<html>

<head>

<title>Modifier Apprenant</title>

</head>

<body>

<h2>Modifier Apprenant</h2>

<form method="post">

Nom : <input type="text" name="nom" value="<?php echo $apprenant['nom']; ?>"><br>

Âge : <input type="number" name="age" value="<?php echo $apprenant['age']; ?>"><br>

Filière :

<select name="filiere_id">

<?php

$resF = mysqli_query($conn, "SELECT * FROM filiere");

while ($row = mysqli_fetch_assoc($resF)) {

$selected = ($row['id'] == $apprenant['filiere_id']) ? "selected" : "";

echo "<option value='".$row['id']."' $selected>".$row['nom']."</option>";

}
?>

</select><br>

<input type="submit" value="Modifier">

</form>

</body>

</html>

---

4. Supprimer un apprenant (supprimer_apprenant.php)

<?php

include("[Link]");

$id = $_GET['id'];

$sql = "DELETE FROM apprenant WHERE id=$id";

if (mysqli_query($conn, $sql)) {

echo "Apprenant supprimé avec succès ! <a href='liste_apprenants.php'>Retour</a>";

} else {

echo "Erreur : " . mysqli_error($conn);

?>
---

✅ Résultat attendu

Depuis [Link], tu navigues facilement.

Tu peux :

1. Ajouter une filière.

2. Ajouter un apprenant (en choisissant sa filière).

3. Voir la liste des apprenants.

4. Modifier ou Supprimer un apprenant.

---
👉 Veux-tu que je continue encore en ajoutant un formulaire de recherche (chercher un apprenant par
nom) et un filtrage par filière ?

Super 👌 Moussa ! Continuons donc le mini-projet PHP & MySQL en ajoutant :

1. 🔎 Recherche d’un apprenant par son nom

2. 📂 Filtrage des apprenants par filière

---

🏫 Amélioration du mini-projet : Recherche et Filtrage

---

1. Recherche d’un apprenant par nom (recherche_apprenant.php)

<!DOCTYPE html>

<html>

<head>
<title>Recherche Apprenant</title>

</head>

<body>

<h2>Rechercher un Apprenant</h2>

<a href="[Link]">⬅ Retour au menu</a><br><br>

<form method="get" action="">

Nom : <input type="text" name="nom" placeholder="Entrer un nom">

<input type="submit" value="Rechercher">

</form>

<br>

<?php

include("[Link]");

if (isset($_GET['nom'])) {

$nom = $_GET['nom'];

$sql = "SELECT [Link], [Link], [Link], [Link] AS filiere

FROM apprenant

JOIN filiere ON apprenant.filiere_id = [Link]

WHERE [Link] LIKE '%$nom%'";

$res = mysqli_query($conn, $sql);

if (mysqli_num_rows($res) > 0) {

echo "<table border='1' cellpadding='5'>


<tr><th>ID</th><th>Nom</th><th>Âge</th><th>Filière</th></tr>";

while ($row = mysqli_fetch_assoc($res)) {

echo "<tr>

<td>".$row['id']."</td>

<td>".$row['nom']."</td>

<td>".$row['age']."</td>

<td>".$row['filiere']."</td>

</tr>";

echo "</table>";

} else {

echo "Aucun apprenant trouvé.";

?>

</body>

</html>

---

2. Filtrer les apprenants par filière (filtrer_apprenants.php)

<!DOCTYPE html>

<html>
<head>

<title>Filtrer par Filière</title>

</head>

<body>

<h2>Filtrer les Apprenants par Filière</h2>

<a href="[Link]">⬅ Retour au menu</a><br><br>

<form method="get" action="">

Choisir une filière :

<select name="filiere_id">

<option value="">-- Toutes --</option>

<?php

include("[Link]");

$resF = mysqli_query($conn, "SELECT * FROM filiere");

while ($row = mysqli_fetch_assoc($resF)) {

$selected = (isset($_GET['filiere_id']) && $_GET['filiere_id'] == $row['id']) ? "selected" : "";

echo "<option value='".$row['id']."' $selected>".$row['nom']."</option>";

?>

</select>

<input type="submit" value="Filtrer">

</form>

<br>

<?php
if (isset($_GET['filiere_id']) && $_GET['filiere_id'] != "") {

$filiere_id = $_GET['filiere_id'];

$sql = "SELECT [Link], [Link], [Link], [Link] AS filiere

FROM apprenant

JOIN filiere ON apprenant.filiere_id = [Link]

WHERE apprenant.filiere_id = $filiere_id";

} else {

$sql = "SELECT [Link], [Link], [Link], [Link] AS filiere

FROM apprenant

JOIN filiere ON apprenant.filiere_id = [Link]";

$res = mysqli_query($conn, $sql);

if (mysqli_num_rows($res) > 0) {

echo "<table border='1' cellpadding='5'>

<tr><th>ID</th><th>Nom</th><th>Âge</th><th>Filière</th></tr>";

while ($row = mysqli_fetch_assoc($res)) {

echo "<tr>

<td>".$row['id']."</td>

<td>".$row['nom']."</td>

<td>".$row['age']."</td>

<td>".$row['filiere']."</td>

</tr>";

}
echo "</table>";

} else {

echo "Aucun apprenant trouvé.";

?>

</body>

</html>

---

3. Mise à jour du menu ([Link])

On ajoute des liens vers recherche et filtrage :

<ul>

<li><a href="ajout_filiere.php">Ajouter une Filière</a></li>

<li><a href="ajout_apprenant.php">Ajouter un Apprenant</a></li>

<li><a href="liste_apprenants.php">Voir la liste des Apprenants</a></li>

<li><a href="recherche_apprenant.php">Rechercher un Apprenant</a></li>

<li><a href="filtrer_apprenants.php">Filtrer par Filière</a></li>

</ul>

---
✅ Résultat final

🎓 Ajouter des filières et apprenants

📋 Lister les apprenants avec leur filière

✏️Modifier ou ❌ Supprimer un apprenant

🔎 Rechercher un apprenant par nom

📂 Filtrer les apprenants par filière

---

👉 Veux-tu que je continue et transforme ce mini-projet en une application plus professionnelle avec un
design (CSS Bootstrap) pour rendre les formulaires et tableaux plus beaux ?

Vous aimerez peut-être aussi