strtotime($end_date)) { $_SESSION['message'] = "Startdatum darf nicht nach dem Enddatum liegen."; $_SESSION['message_type'] = 'danger'; $message = $_SESSION['message']; $message_type = $_SESSION['message_type']; } else { mysqli_autocommit($conn, false); $success = false; if ($trip_id) { $stmt = mysqli_prepare($conn, "UPDATE trips SET title = ?, description = ?, hotel = ?, hotel_address = ?, start_date = ?, end_date = ? WHERE id = ?"); mysqli_stmt_bind_param($stmt, "ssssssi", $title, $description, $hotel, $hotel_address, $start_date, $end_date, $trip_id); } else { $stmt = mysqli_prepare($conn, "INSERT INTO trips (title, description, hotel, hotel_address, start_date, end_date) VALUES (?, ?, ?, ?, ?, ?)"); mysqli_stmt_bind_param($stmt, "ssssss", $title, $description, $hotel, $hotel_address, $start_date, $end_date); } if (mysqli_stmt_execute($stmt)) { if (!$trip_id) { $trip_id = mysqli_insert_id($conn); } mysqli_query($conn, "DELETE FROM trip_groups WHERE trip_id = $trip_id"); $drivers = $_POST['drivers'] ?? []; foreach ($drivers as $driver_id => $passengers) { $driver_id = (int)$driver_id; if (!empty($passengers['list'])) { foreach ($passengers['list'] as $passenger_id) { $passenger_id = (int)$passenger_id; if ($driver_id !== $passenger_id) { $notes = trim($passengers['notes'][$passenger_id] ?? ''); $stmt_ins = mysqli_prepare($conn, "INSERT INTO trip_groups (trip_id, driver_id, passenger_id, notes) VALUES (?, ?, ?, ?)"); mysqli_stmt_bind_param($stmt_ins, "iiis", $trip_id, $driver_id, $passenger_id, $notes); mysqli_stmt_execute($stmt_ins); mysqli_stmt_close($stmt_ins); } } } } $success = true; } mysqli_stmt_close($stmt); if ($success) { mysqli_commit($conn); $_SESSION['message'] = $trip_id ? "Reise aktualisiert!" : "Neue Reise erstellt!"; $_SESSION['message_type'] = 'success'; header("Location: trip.php"); exit(); } else { mysqli_rollback($conn); $_SESSION['message'] = "Fehler beim Speichern der Reise."; $_SESSION['message_type'] = 'danger'; $message = $_SESSION['message']; $message_type = $_SESSION['message_type']; } mysqli_autocommit($conn, true); } } if (isset($_GET['action']) && $_GET['action'] === 'delete' && isset($_GET['trip_id'])) { $trip_id = (int)$_GET['trip_id']; $stmt = mysqli_prepare($conn, "DELETE FROM trips WHERE id = ?"); mysqli_stmt_bind_param($stmt, "i", $trip_id); if (mysqli_stmt_execute($stmt)) { $_SESSION['message'] = "Reise gelöscht!"; $_SESSION['message_type'] = 'success'; } else { $_SESSION['message'] = "Fehler beim Löschen."; $_SESSION['message_type'] = 'danger'; } mysqli_stmt_close($stmt); header("Location: trip.php"); exit(); } $trips = []; $result = mysqli_query($conn, "SELECT * FROM trips ORDER BY start_date DESC"); while ($row = mysqli_fetch_assoc($result)) { $row['groups'] = get_trip_groups($conn, $row['id']); $trips[] = $row; } $edit_trip = null; if (isset($_GET['action']) && $_GET['action'] === 'edit' && isset($_GET['trip_id'])) { $trip_id = (int)$_GET['trip_id']; $stmt = mysqli_prepare($conn, "SELECT * FROM trips WHERE id = ?"); mysqli_stmt_bind_param($stmt, "i", $trip_id); mysqli_stmt_execute($stmt); $edit_trip = mysqli_fetch_assoc(mysqli_stmt_get_result($stmt)); mysqli_stmt_close($stmt); if ($edit_trip) { $edit_trip['groups'] = get_trip_groups($conn, $trip_id); $grouped = []; foreach ($edit_trip['groups'] as $g) { $grouped[$g['driver_id']][$g['passenger_id']] = $g['notes']; } $edit_trip['grouped'] = $grouped; } } $all_users = get_all_users($conn); require_once('inc/header.php'); ?>
= htmlspecialchars($trip['hotel']) ?>
= nl2br(htmlspecialchars($trip['hotel_address'])) ?>
Auf Karte anzeigen= nl2br(htmlspecialchars($trip['description'])) ?>
= htmlspecialchars($passengers[0]['driver_name']) ?>
Keine Fahrer/Mitfahrer eingetragen.
Keine Reisen geplant.