query(" SELECT c.*, z.menge_ml, z.menge_anteil, z.einheit, z.original_text, z.zutat, z.zutat_de, z.kategorie, z.id as zutat_id FROM cocktails c LEFT JOIN zutaten z ON c.id = z.cocktail_id WHERE hide = 0 ORDER BY c.seite, c.name, z.menge_ml DESC, z.id ASC "); $cocktails = []; $currentCocktail = null; foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) { $cocktailId = $row['id']; if ($currentCocktail !== $cocktailId) { $currentCocktail = $cocktailId; $row['zutaten'] = []; $cocktails[] = $row; } // Zutat zu aktuellem Cocktail hinzufügen if (!empty($row['zutat_id'])) { $zutat = [ 'menge_ml' => $row['menge_ml'], 'menge_anteil' => $row['menge_anteil'], 'einheit' => $row['einheit'], 'original_text' => $row['original_text'], 'zutat' => $row['zutat'], 'zutat_de' => $row['zutat_de'], 'kategorie' => $row['kategorie'], 'id' => $row['zutat_id'] ]; $cocktails[array_key_last($cocktails)]['zutaten'][] = $zutat; } } echo json_encode($cocktails);