Untitled
unknown
plain_text
a year ago
6.5 kB
6
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