0% ont trouvé ce document utile (0 vote)
11 vues4 pages

Code PHP pour gestion des stagiaires

Le document présente un code PHP pour gérer des stagiaires dans une base de données, incluant des fonctions pour se connecter à la base, lister les stagiaires, compter ceux d'un groupe, vérifier si un groupe est rempli, et insérer de nouveaux stagiaires via un formulaire. Il décrit également la structure d'un formulaire HTML pour ajouter un stagiaire et le traitement des données soumises. Enfin, une fonction pour lister les modules en cours d'une filière est incluse.

Transféré par

aracasablanca7
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)
11 vues4 pages

Code PHP pour gestion des stagiaires

Le document présente un code PHP pour gérer des stagiaires dans une base de données, incluant des fonctions pour se connecter à la base, lister les stagiaires, compter ceux d'un groupe, vérifier si un groupe est rempli, et insérer de nouveaux stagiaires via un formulaire. Il décrit également la structure d'un formulaire HTML pour ajouter un stagiaire et le traitement des données soumises. Enfin, une fonction pour lister les modules en cours d'une filière est incluse.

Transféré par

aracasablanca7
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

# 1) Ecrire le code qui permettra de se connecter à la base de données

$dsn = "mysql:host=localhost; dbname=ofppt";


$user = "root";
$password = ""; // "root";
try {
$conn = new PDO($dsn, $user, $password);
// echo "Done!";
} catch (PDOException $e) {
echo $e->getMessage();
}

# 2) Ecrire une fonction listerStagiaires() qui permettra de lister tous les stagiaires

function listerStagiaires()
{
global $conn;
$sql = "SELECT * FROM stagiaire";
$result = $conn->prepare($sql);
$result->execute();

$list_Stagiaire = [];

foreach ($result->fetchAll() as $e) {


$list_Stagiaire[] = "CIN : " . $e["cin"] . " Nom : " . $e["nom"] . " Prenom : " . $e["prenom"];
}
return $list_Stagiaire;
}

# 3) Ecrire une fonction nombreStagiaires($id_groupe)


qui prends en argument l’id d’un groupe et retourne le nombre des stagiaires affectés
à ce groupe
function nombreStagiaires($id_groupe)
{
global $conn;
$sql = "SELECT COUNT(*) FROM stagiaire WHERE id_groupe = $id_groupe";
$result = $conn->prepare($sql);
$result->execute();

return $result->fetch()[0];
}

# 4) Ecrire une fonction groupeRempli($id_groupe)


qui prends en argument l’id d’un groupe et retourne
true si le nombre des stagiaires du groupe est supérieur ou égale à la valeur de la
colonne max_nombre_stagiaires et false sinon.

function groupRempli($id_groupe)
{
global $conn;
$sql = "SELECT CASE
WHEN (" . nombreStagiaires($id_groupe) . ") >= (SELECT max_nombre_stagiaires
FROM groupe WHERE id_groupe = $id_groupe)
THEN 'True'
ELSE 'false'
END AS `GroupRempli`";
$result = $conn->prepare($sql);
$result->execute();

return $result->fetch()[0];
}

Dans la page [Link] on a un formulaire avec les paramètres


suivants :

a. method=post

b. action=[Link]

c. Quatre input de type text, qui ont les valeurs cin, nom, prenom,
email dans l’attribut name

d. Un select qui a groupe dans l’attribut name et permets de choisir


l’id du groupe

<html lang="uk">
<head>
<title></title>
</head>
<body>
<form method="post" action="[Link]">

<select name="id_group">
<option>none</option>
<?PHP
include "id_group.php";
?>
</select>
<br>
<label>CIN :
<input type="text" name="cin">
</label>
<br>
<label>
NOM :
<input type="text" name="nom">
</label>
<br>
<label>
Prenom :
<input type="text" name="prenom">
</label>
<br>
<label>
Email :
<input type="email" name="email">
</label>
<br>
<input type="submit" name="sub">
</form>
</body>
</html>

5) Ecrire le code de la page [Link] qui permettra de :

a. Tester si le groupe est remplie

b. Si oui on affiche le message « le stagiaire ne peut pas être affecté


à ce groupe »

c. Si non on insère la ligne dans la table stagiaire (4pts)

if (isset($_POST["sub"])) {
$id_groupe = $_POST["id_group"];
$result = groupRempli(intval($id_groupe));
echo $result;
if ($result === true) {
echo "<script>";
echo "alert('le stagiaire ne peut pas être affecté à ce groupe')";
echo "</script>";
} else {
$cin = $_POST['cin'];
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$email = $_POST['email'];

$sql = "INSERT INTO stagiaire (id_groupe, cin, nom, prenom, email) VALUES
($id_groupe, '$cin', '$nom', '$prenom', '$email')";
$conn->exec($sql);
}
}
6) Ecrire une fonction modulesEnCours($id_filiere) qui permettra de lister les
modules appartenant à la filière en argument et que leurs
nombre_heures_effectuees est inférieur strictement aux nombres_heures_total
(4pts)

function modulesEnCours($id_filiere)
{
global $conn;
$sql = "SELECT * FROM module WHERE id_filiere = $id_filiere
and nombre_heures_effectuees < nombre_heures_total";
$result = $conn->prepare($sql);
$result->execute();

$data = array();

foreach ($result->fetchAll() as $e) {


$data["id_module"] = $e["id_module"];
$data["id_filiere"] = $e["id_filiere"];
$data["code_model"] = $e["code_model"];
$data["number_heures_total"] = $e["nombre_heures_total"];
$data["number_heures_effectuees"] = $e["nombre_heures_effectuees"];
}
return $data;
}

print_r(modulesEnCours(2));

Vous aimerez peut-être aussi