<?php
if (session_status() === PHP_SESSION_NONE) {
    session_start();
}
error_reporting(E_ALL);
ini_set('display_errors', 1);
require_once 'db_connection.php';

// Suchbegriff ermitteln
$search = isset($_GET['search']) ? trim($_GET['search']) : '';

// Erlaubte Sortierfelder
$sort_allowed = ['Rezeptnummer', 'Bezeichnung', 'Kategorie'];

// Sortierparameter aus URL oder Standard auf 'Rezeptnummer'
$sort = isset($_GET['sort']) && in_array($_GET['sort'], $sort_allowed) ? $_GET['sort'] : 'Rezeptnummer';

// SQL Query aufbauen
$sql = "SELECT id, Rezeptnummer, Bezeichnung, Kategorie FROM Rezepte";
$conditions = [];
$params = [];
$types = '';

// Suche in Bezeichnung, Beschreibung, Kategorie
if (!empty($search)) {
    $search_term = "%" . $search . "%";
    $conditions[] = "(Bezeichnung LIKE ? OR Beschreibung LIKE ? OR Kategorie LIKE ?)";
    $params = array_merge($params, [$search_term, $search_term, $search_term]);
    $types .= 'sss';
}

if (!empty($conditions)) {
    $sql .= " WHERE " . implode(" AND ", $conditions);
}

// Sortierung: numerisch für Rezeptnummer, sonst alphabetisch
if ($sort === 'Rezeptnummer') {
    $sql .= " ORDER BY CAST(`$sort` AS UNSIGNED) ASC";
} else {
    $sql .= " ORDER BY `$sort` ASC";
}

$stmt = $link->prepare($sql);
if (!$stmt) {
    die("Fehler bei der Vorbereitung der Abfrage: " . $link->error);
}
if (!empty($params)) {
    $stmt->bind_param($types, ...$params);
}
$stmt->execute();
$result = $stmt->get_result();
?>

<!DOCTYPE html>
<html>
<head>
    <title>Rezepte Übersicht</title>
    <style>
        body {
            font-family: sans-serif;
            background: #fcf6e3;
            color: #5b4636;
            font-size: 22px;
        }
        .tabelle-container {
            width: 100%;
            display: flex;
            flex-direction: column;
            align-items: center;
        }
        .table-aufgaben {
    width: 900px;
    margin: 0 auto;
    border-collapse: collapse;
    table-layout: fixed;
    background: #fff;
}
        .table-aufgaben th, .table-aufgaben td {
            padding: 8px;
            word-wrap: break-word;
            overflow-wrap: break-word;
            white-space: normal;
            text-align: center;
        }
        .table-aufgaben th:first-child, .table-aufgaben td:first-child {
            width: 10%;
            text-align: center;
        }
        .table-aufgaben th.rezeptnr, .table-aufgaben th.bezeichnung {
            text-align: center;
        }
        .table-aufgaben th.bezeichnung {
            text-align: left;
        }
        .table-aufgaben td.bezeichnung {
            text-align: left;
        }
        .table-aufgaben th a {
            color: #8b5a2b;
            text-decoration: none;
        }
        .table-aufgaben td.bezeichnung a {
            color: #c17e1b;
            text-decoration: none;
        }
        .table-aufgaben td.bezeichnung a:hover {
            text-decoration: underline;
        }
        .table-aufgaben th.kategorie, .table-aufgaben td.kategorie {
            width: 30%;
            text-align: left;
        }
        tr {
            background: #fbeee6;
        }
        .search-container {
            text-align: center;
            margin-bottom: 20px;
        }
        .search-container form {
            display: inline-flex;
            align-items: center;
        }
        .search-container input[type="text"] {
            padding: 8px;
            font-size: 18px;
            width: 15ch;
            border: 1px solid #ccc;
            border-radius: 4px;
            margin-right: 10px;
        }
        .search-container button {
            padding: 8px 16px;
            background: #bb7e19;
            color: #fff;
            border: none;
            border-radius: 4px;
            cursor: pointer;
            font-size: 18px;
        }
        .search-container button:hover {
            background: #a06d15;
        }
        .neu-container {
            width: 100%;
            display: flex;
            justify-content: center;
            margin-top: 22px;
        }
        .neu {
            background: #bb7e19;
            color: #fff;
            padding: 10px 22px;
            border: none;
            border-radius: 4px;
            text-decoration: none;
            font-size: 1.5em;
            box-shadow: 1px 1px 4px #efd7b1;
        }
                .edit-button {
            display: inline-block;
            padding: 10px 20px;
            background-color: #2196F3;
            color: white;
            text-decoration: none;
            border-radius: 5px;
            font-family: Roboto, sans-serif;
            font-size: 1em;
            margin-bottom: 10px;
        }

    </style>
</head>
<body>

    <div class="top-bar">
<!--        <a href="Edit.php" class="neu">Neues Rezept</a>-->
        <div class="search-container">
            <form method="get" action="">
                <input type="text" name="search" value="<?= htmlspecialchars($search) ?>" placeholder="Suche...">
                <button type="submit" class="search-btn">Suche</button>
            </form>
        </div>
    </div>
    <div class="tabelle-container">
        <table class="table-aufgaben">
            <tr>
                <th class="rezeptnr"><a href="?sort=Rezeptnummer&search=<?= htmlspecialchars($search) ?>">Rezeptnr.</a></th>
                <th class="bezeichnung"><a href="?sort=Bezeichnung&search=<?= htmlspecialchars($search) ?>">Bezeichnung</a></th>
                <th class="kategorie"><a href="?sort=Kategorie&search=<?= htmlspecialchars($search) ?>">Kategorie</a></th>

            </tr>
            <?php while($row = $result->fetch_assoc()): ?>
            <tr>
                <td><?= htmlspecialchars($row['Rezeptnummer']) ?></td>
                <td class="bezeichnung"><a href="main.php?id=<?= htmlspecialchars($row['id']) ?>"><?= htmlspecialchars($row['Bezeichnung']) ?></a></td>
                <td class="kategorie"><?= htmlspecialchars($row['Kategorie']) ?></td>

            </tr>
            <?php endwhile; ?>
        </table>
        <div class="neu-container">
            <a href="Edit.php" class="neu">Neues Rezept</a>
        </div>
    </div>
</body>
</html>
