connect_error) { die(json_encode(["error" => "Datenbankverbindung fehlgeschlagen: " . $conn->connect_error])); } return $conn; } function get_all_recipes() { $conn = db_connect(); $sql = "SELECT Id, Title, Description, ImagePath FROM Recipes"; $result = $conn->query($sql); $recipes = []; while ($row = $result->fetch_assoc()) { $recipes[] = [ 'Id' => (int)$row['Id'], 'Title' => $row['Title'], 'Description' => $row['Description'], 'ImagePath' => $row['ImagePath'] ]; } $conn->close(); return json_encode($recipes); } function get_recipe_by_id($recipeId) { $conn = db_connect(); $recipeId = (int)$recipeId; // Lade die Basisinformationen des Rezepts $sql = "SELECT * FROM `Recipes` WHERE `Id` = $recipeId"; $result = $conn->query($sql); $recipe = $result->fetch_assoc(); if (!$recipe) { $conn->close(); return json_encode(['error' => 'Rezept nicht gefunden']); } $recipeDetails = [ 'Id' => (int)$recipe['Id'], 'Title' => $recipe['Title'], 'Description' => $recipe['Description'], 'ImagePath' => $recipe['ImagePath'], 'Rating' => (float)$recipe['Rating'], 'UserId' => (int)$recipe['UserId'], 'Servings' => (int)$recipe['Servings'], 'CreatedAt' => $recipe['CreatedAt'] ]; // Lade die Anweisungen $instructionsSql = "SELECT StepNumber, Instruction FROM RecipeInstructions WHERE RecipeId = $recipeId ORDER BY StepNumber"; $instructionsResult = $conn->query($instructionsSql); $instructions = []; while ($instructionRow = $instructionsResult->fetch_assoc()) { $instructions[] = [ 'StepNumber' => (int)$instructionRow['StepNumber'], 'InstructionText' => $instructionRow['Instruction'] ]; } $recipeDetails['Instructions'] = $instructions; // Lade die Zutaten $ingredientsSql = " SELECT i.Quantity, md.Name AS Unit, i.Name FROM Ingredients i LEFT JOIN MasterData md ON i.UnitId = md.Id WHERE i.RecipeId = $recipeId "; $ingredientsResult = $conn->query($ingredientsSql); $ingredients = []; while ($ingredientRow = $ingredientsResult->fetch_assoc()) { $ingredients[] = [ 'Quantity' => (float)$ingredientRow['Quantity'], 'Unit' => $ingredientRow['Unit'], // Verknüpfte Einheit 'Name' => $ingredientRow['Name'] ]; } $recipeDetails['Ingredients'] = $ingredients; $conn->close(); return json_encode($recipeDetails); } function create_recipe() { // Gleiche Logik wie im vorherigen Beispiel } function update_recipe($id) { // Gleiche Logik wie im vorherigen Beispiel } function delete_recipe($id) { // Gleiche Logik wie im vorherigen Beispiel } ?>