Untitled

 avatar
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