diff options
Diffstat (limited to 'api_cocktails.php')
| -rw-r--r-- | api_cocktails.php | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/api_cocktails.php b/api_cocktails.php new file mode 100644 index 0000000..3ccde2b --- /dev/null +++ b/api_cocktails.php @@ -0,0 +1,44 @@ +<?php +header('Content-Type: application/json; charset=utf8mb4'); +require 'db_config.php'; + +$stmt = $pdo->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); |
