diff --git a/admin/participant.php b/admin/participant.php index 33571e3..c927565 100755 --- a/admin/participant.php +++ b/admin/participant.php @@ -11,13 +11,34 @@ if (!isset($_GET['id'])) { header("Location: index.php"); exit; } + $meeting_id = htmlspecialchars($_GET['id']); +// Neu: Quelle des Aufrufs festlegen für bedingte Logik und Weiterleitung +$source_page = isset($_GET['source']) && $_GET['source'] == 'history' ? 'history' : 'index'; +$cancel_link = $source_page === 'history' ? '../history.php' : '../index.php'; + // Daten speichern, wenn das Formular abgeschickt wurde if ($_SERVER["REQUEST_METHOD"] == "POST") { - $table_name = "meeting_teilnehmer"; // <<< Korrekter Tabellenname + $table_name = "meeting_teilnehmer"; - // Vorhandene Daten für dieses Meeting löschen, um Duplikate zu vermeiden + // Neu: Daten des Meetings selbst aktualisieren, falls aus der History aufgerufen + if ($source_page === 'history') { + $meeting_date = $_POST['meeting_date']; + $color_id = $_POST['color_id']; + $reason = $_POST['reason'] ?? null; + + $stmt = mysqli_prepare($conn, "UPDATE meetings SET meeting_date = ?, color_id = ?, reason = ? WHERE id = ?"); + if ($stmt) { + mysqli_stmt_bind_param($stmt, "sisi", $meeting_date, $color_id, $reason, $meeting_id); + mysqli_stmt_execute($stmt); + mysqli_stmt_close($stmt); + } else { + die("Fehler beim Vorbereiten der Meeting-Update-Abfrage: " . mysqli_error($conn)); + } + } + + // Vorhandene Daten für dieses Meeting löschen $stmt = mysqli_prepare($conn, "DELETE FROM " . $table_name . " WHERE meeting_id = ?"); if ($stmt === false) { die("Fehler in der SQL-Abfrage: " . mysqli_error($conn)); @@ -55,8 +76,8 @@ if ($_SERVER["REQUEST_METHOD"] == "POST") { // Daten für das Formular abrufen (Meetings und Benutzer) // --------------------------------------------------------------------- -// Meeting-Details abrufen -$stmt = mysqli_prepare($conn, "SELECT m.meeting_date, c.name AS color_name FROM meetings m JOIN colors c ON m.color_id = c.id WHERE m.id = ?"); +// Neu: Zusätzliche Meeting-Details für den Edit-Modus abrufen +$stmt = mysqli_prepare($conn, "SELECT m.meeting_date, m.reason, m.color_id, c.name AS color_name FROM meetings m LEFT JOIN colors c ON m.color_id = c.id WHERE m.id = ?"); if ($stmt === false) { die("Fehler in der SQL-Abfrage: " . mysqli_error($conn)); } @@ -71,6 +92,15 @@ if (!$meeting) { exit; } +// Neu: Alle Farben für das Dropdown im Edit-Modus abrufen +$colors = []; +$colors_result = mysqli_query($conn, "SELECT id, name FROM colors ORDER BY name"); +if ($colors_result) { + while ($row = mysqli_fetch_assoc($colors_result)) { + $colors[] = $row; + } +} + // Alle Benutzer abrufen $users = []; $users_result = mysqli_query($conn, "SELECT id, username AS name FROM users ORDER BY username"); @@ -82,7 +112,7 @@ while ($row = mysqli_fetch_assoc($users_result)) { } // Bestehende Feedback-Daten für dieses Meeting abrufen, falls vorhanden -$table_name = "meeting_teilnehmer"; // <<< Korrekter Tabellenname +$table_name = "meeting_teilnehmer"; $stmt = mysqli_prepare($conn, "SELECT user_id, attended, wore_color, paid FROM " . $table_name . " WHERE meeting_id = ?"); if ($stmt === false) { die("Fehler in der SQL-Abfrage: " . mysqli_error($conn)); @@ -100,7 +130,10 @@ require_once '../inc/header.php';

Teilnahme eintragen

-

für das Treffen am in der Farbe .

+ + +

für das Treffen am in der Farbe .

+