prepare("SELECT household_id FROM users WHERE id = ?"); $stmt_household->bind_param("i", $current_user_id); $stmt_household->execute(); $current_user_household_id = $stmt_household->get_result()->fetch_assoc()['household_id']; $stmt_household->close(); $household_member_ids = [$current_user_id]; if ($current_user_household_id) { $stmt_members = $conn->prepare("SELECT id FROM users WHERE household_id = ?"); $stmt_members->bind_param("i", $current_user_household_id); $stmt_members->execute(); $result_members = $stmt_members->get_result(); while ($row = $result_members->fetch_assoc()) { if (!in_array($row['id'], $household_member_ids)) { $household_member_ids[] = $row['id']; } } $stmt_members->close(); } $placeholders = implode(',', array_fill(0, count($household_member_ids), '?')); $types = str_repeat('i', count($household_member_ids)); // --- Daten für die Statistik-Boxen laden --- $articles_by_category = []; $sql_articles_by_category = "SELECT c.name AS category_name, COUNT(a.id) AS article_count FROM articles a LEFT JOIN categories c ON a.category_id = c.id WHERE a.user_id IN ($placeholders) OR a.household_id = ? GROUP BY c.name ORDER BY article_count DESC"; $stmt_articles_by_category = $conn->prepare($sql_articles_by_category); if ($stmt_articles_by_category) { $all_params = array_merge($household_member_ids, [$current_user_household_id]); $all_types = $types . 'i'; $stmt_articles_by_category->bind_param($all_types, ...$all_params); $stmt_articles_by_category->execute(); $result_articles_by_category = $stmt_articles_by_category->get_result(); while ($row = $result_articles_by_category->fetch_assoc()) { $articles_by_category[] = [ 'category_name' => $row['category_name'] ?: 'Ohne Kategorie', 'article_count' => $row['article_count'] ]; } $stmt_articles_by_category->close(); } $packing_lists_stats = []; $sql_lists = "SELECT pl.id, pl.name, SUM(pli.quantity * a.weight_grams) AS total_weight FROM packing_lists pl LEFT JOIN packing_list_items pli ON pl.id = pli.packing_list_id LEFT JOIN articles a ON pli.article_id = a.id WHERE pl.user_id IN ($placeholders) OR pl.household_id = ? GROUP BY pl.id, pl.name ORDER BY total_weight DESC"; $stmt_lists = $conn->prepare($sql_lists); if ($stmt_lists) { $all_params = array_merge($household_member_ids, [$current_user_household_id]); $all_types = $types . 'i'; $stmt_lists->bind_param($all_types, ...$all_params); $stmt_lists->execute(); $result_lists = $stmt_lists->get_result(); while ($row = $result_lists->fetch_assoc()) { $packing_lists_stats[] = [ 'packing_list_id' => $row['id'], 'packing_list_name' => htmlspecialchars($row['name']), 'total_weight_grams' => $row['total_weight'] ?: 0 ]; } $stmt_lists->close(); } $conn->close(); // Daten für die Diagramme vorbereiten $category_chart_labels = json_encode(array_column($articles_by_category, 'category_name')); $category_chart_data = json_encode(array_column($articles_by_category, 'article_count')); $list_chart_labels = json_encode(array_column($packing_lists_stats, 'packing_list_name')); $list_chart_data = json_encode(array_column($packing_lists_stats, 'total_weight_grams')); $quotes = ["Nur wo du zu Fuß warst, bist du auch wirklich gewesen.", "Der Weg ist das Ziel.", "Abenteuer beginnen, wo Pläne enden."]; $random_quote = $quotes[array_rand($quotes)]; ?>
Organisiere deine Ausrüstung und bereite dich optimal auf dein nächstes Abenteuer vor.
""
Füge Artikel hinzu, um hier eine Übersicht zu sehen.
Erstelle eine Packliste, um hier eine Analyse zu sehen.