Untitled
unknown
plain_text
2 years ago
6.5 kB
11
Indexable
<?php
// Connexion à la base de données
$serveur = "localhost";
$utilisateur = "root";
$motDePasse = "";
$baseDeDonnees = "formation";
$message = "";
$showMessage = false;
try {
$database = new PDO("mysql:host=$serveur;dbname=$baseDeDonnees", $utilisateur, $motDePasse);
$database->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("La connexion à la base de données a échoué : " . $e->getMessage());
}
// Récupération de l'IDS de la session à modifier depuis l'URL
$IDS = isset($_GET['IDS']) ? $_GET['IDS'] : null;
// Vérification si l'IDS est fourni
if (!$IDS) {
// Redirection vers la page principale si l'IDS n'est pas spécifié
header("Location: liste.php");
exit();
}
// Récupération des informations de la session à modifier
$requeteSession = $database->prepare("SELECT * FROM sessionc WHERE IDS = ?");
$requeteSession->execute([$IDS]);
$session = $requeteSession->fetch(PDO::FETCH_ASSOC);
// Récupération des formateurs
$requeteFormateurs = $database->query("SELECT IDF, nomF,prenomF FROM formateur");
$formateurs = $requeteFormateurs->fetchAll(PDO::FETCH_ASSOC);
// Récupération des cours
$requeteCours = $database->query("SELECT IDCO, titreCO FROM cours");
$cours = $requeteCours->fetchAll(PDO::FETCH_ASSOC);
// Récupération des participants
$requeteParticipants = $database->query("SELECT IDP, nomP,prenomP FROM participant");
$participants = $requeteParticipants->fetchAll(PDO::FETCH_ASSOC);
// Récupération des participants liés à la session
$requeteParticipantsSession = $database->prepare("SELECT IDP FROM sessionp WHERE IDS = ?");
$requeteParticipantsSession->execute([$IDS]);
$participantsSession = $requeteParticipantsSession->fetchAll(PDO::FETCH_COLUMN);
// Traitement du formulaire de modification
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Récupération des données modifiées
$nouveauIdCours = $_POST['idCours'];
$nouveauIdFormateur = $_POST['idFormateur'];
$nouvelleDateDebut = $_POST['dateDebut'];
$nouvelleDateFin = $_POST['dateFin'];
$nouveauxParticipants = isset($_POST['idParticipants']) ? $_POST['idParticipants'] : [];
function generateUniqueIDPS($database, $length = 6)
{
$characters = '0123456789';
do {
$idps = '';
for ($i = 0; $i < $length; $i++) {
$idps .= $characters[rand(0, strlen($characters) - 1)];
}
$existingIDPSQuery = $database->prepare("SELECT COUNT(*) FROM sessionp WHERE IDPS = ?");
$existingIDPSQuery->execute([$idps]);
$count = $existingIDPSQuery->fetchColumn();
} while ($count > 0);
return $idps;
}
// Mise à jour des informations dans la table sessionc
$requeteUpdateSession = $database->prepare("UPDATE sessionc SET IDCO=?, IDF=?, datedS=?, datefS=? WHERE IDS = ?");
$requeteUpdateSession->execute([$nouveauIdCours, $nouveauIdFormateur, $nouvelleDateDebut, $nouvelleDateFin, $IDS]);
// Mise à jour des participants dans la table sessionp
// Supprime les participants actuels liés à cette session
$requeteSupprimerParticipants = $database->prepare("DELETE FROM sessionp WHERE IDS = ?");
$requeteSupprimerParticipants->execute([$IDS]);
// Ajoute les nouveaux participants
$requeteAjouterParticipants = $database->prepare("INSERT INTO sessionp (IDPS,IDS, IDP) VALUES (? , ?, ?)");
foreach ($nouveauxParticipants as $idParticipant) {
$idps = generateUniqueIDPS($database, 6);
$requeteAjouterParticipants->execute([$idps,$IDS, $idParticipant]);
}
// Redirection vers la page principale après la modification
$message = "Données modifiées avec succès!";
$showMessage = true;
// Redirige vers la liste.php (à adapter selon votre structure de fichiers)
header("Location: http://localhost/test web/sessionc.php");
exit();
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Modifier Session</title>
<link rel="stylesheet" href="ajouter.css">
</head>
<body>
<center> <h2>Modifier Session</h2></center>
<!-- Formulaire de modification -->
<form action="" method="post">
<label for="idCours">Sélectionnez le cours :</label>
<select name="idCours">
<?php foreach ($cours as $cour) : ?>
<option value="<?= $cour['IDCO'] ?>">
<?= $cour['titreCO'] ?>
</option>
<?php endforeach; ?>
</select>
<br>
<label for="idFormateur">Sélectionnez le formateur :</label>
<select name="idFormateur">
<?php foreach ($formateurs as $formateur) : ?>
<option value="<?= $formateur['IDF'] ?>">
<?= $formateur['nomF'] ?> <?= $formateur['prenomF'] ?>
</option>
<?php endforeach; ?>
</select>
<br>
<label for="idParticipants">Sélectionnez les participants :</label>
<select name="idParticipants[]" multiple id="idParticipantsSelect">
<?php foreach ($participants as $participant) : ?>
<option value="<?= $participant['IDP'] ?>">
<?= $participant['nomP'] ?> <?= $participant['prenomP'] ?>
</option>
<?php endforeach; ?>
</select>
<br>
<script>
document.getElementById('idParticipantsSelect').addEventListener('mousedown', function (e) {
e.preventDefault();
var originalScrollTop = this.scrollTop;
e.target.selected = !e.target.selected;
this.focus();
this.scrollTop = originalScrollTop;
return false;
});
</script>
<label for="dateDebut">Date de début :</label>
<input type="date" id="dateDebut" name="dateDebut" required value="<?= $session['datedS'] ?>">
<br>
<label for="dateFin">Date de fin :</label>
<input type="date" id="dateFin" name="dateFin" required value="<?= $session['datefS'] ?>">
<br>
<input type="submit" value="Valider">
</form>
<?php if ($showMessage): ?>
<div id="successMessage" class="successMessage">
<h2><?php echo $message; ?></h2>
</div>
<?php endif; ?>
</body>
</html>
Editor is loading...
Leave a Comment