0) { $sql = "SELECT * FROM Rezepte WHERE id = ?"; $stmt = $link->prepare($sql); $stmt->bind_param('i', $id); $stmt->execute(); if ($stmt->error) { die("Fehler beim Update: " . $stmt->error); } $result = $stmt->get_result(); $row = $result->fetch_assoc(); // Lade die Zutaten aus der Tabelle 'ingredients', falls Rezeptnummer vorhanden if (!empty($row['Rezeptnummer'])) { $rezeptnummer = 'R' . str_pad($row['Rezeptnummer'], 3, '0', STR_PAD_LEFT); $sql_ingr = "SELECT ingr FROM ingredients WHERE rezeptnr = ?"; $stmt_ingr = $link->prepare($sql_ingr); $stmt_ingr->bind_param('s', $rezeptnummer); $stmt_ingr->execute(); $result_ingr = $stmt_ingr->get_result(); $ingr_row = $result_ingr->fetch_assoc(); $zutaten_ingr = $ingr_row['ingr'] ?? ''; } // Lade die Zubereitungsschritte aus der Tabelle 'Zubereitung' if (!empty($row['Rezeptnummer'])) { $rezeptnr_zub = 'R' . str_pad($row['Rezeptnummer'], 3, '0', STR_PAD_LEFT); $sql_zub = "SELECT text FROM Zubereitung WHERE rezeptnummer = ? ORDER BY schritt"; $stmt_zub = $link->prepare($sql_zub); $stmt_zub->bind_param('s', $rezeptnr_zub); $stmt_zub->execute(); $result_zub = $stmt_zub->get_result(); while ($zub_row = $result_zub->fetch_assoc()) { $zubereitung_text .= $zub_row['text'] . "\n"; } $zubereitung_text = trim($zubereitung_text); } // Bilder laden $sql_bilder = "SELECT * FROM rezepte_bilder WHERE rezepte_id = ?"; $stmt_bilder = $link->prepare($sql_bilder); $stmt_bilder->bind_param('i', $id); $stmt_bilder->execute(); $result_bilder = $stmt_bilder->get_result(); $bilder = $result_bilder->fetch_all(MYSQLI_ASSOC); } // Einzelnes Bild speichern, wenn der "Bild speichern"-Button geklickt wurde if (isset($_POST['save_single_image']) && $id > 0) { if (!empty($_FILES['single_bild']['name'])) { $rezeptnummer = isset($_POST['Rezeptnummer']) ? intval($_POST['Rezeptnummer']) : 0; $r_nummer = 'R' . str_pad($rezeptnummer, 3, '0', STR_PAD_LEFT); $upload_dir = 'uploads/' . $r_nummer . '/'; // Ordner erstellen, falls nicht vorhanden if (!file_exists($upload_dir)) { mkdir($upload_dir, 0777, true); } // Aktuelle Anzahl der Bilder in diesem Ordner zählen $existing_files = glob($upload_dir . $r_nummer . '_*.jpg'); $next_index = count($existing_files); $datei_name = $r_nummer . '_' . $next_index . '.jpg'; $datei_pfad = $upload_dir . $datei_name; if (move_uploaded_file($_FILES['single_bild']['tmp_name'], $datei_pfad)) { $sql_bild = "INSERT INTO rezepte_bilder (rezepte_id, datei_pfad) VALUES (?, ?)"; $stmt_bild = $link->prepare($sql_bild); $stmt_bild->bind_param('is', $id, $datei_pfad); $stmt_bild->execute(); } } header("Location: Edit.php?id=$id"); exit(); } // Daten speichern, wenn das Formular gesendet wurde if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['save'])) { $id = isset($_POST['id']) ? intval($_POST['id']) : 0; $rezeptnummer = isset($_POST['Rezeptnummer']) ? intval($_POST['Rezeptnummer']) : 0; $bezeichnung = $_POST['Bezeichnung']; $beschreibung = $_POST['Beschreibung']; $kategorie = $_POST['Kategorie']; $vorbereitung = $_POST['Vorbereitung']; $anzahl_personen = isset($_POST['Anzahl']) ? intval($_POST['Anzahl']) : 2; // Standardwert 2 $zutaten = $_POST['Zutaten']; $zubereitung = $_POST['Zubereitung']; $kommentar = $_POST['Kommentar']; // Rezeptnummer für 'ingredients' und 'Zubereitung' formatieren (z. B. R050) $rezeptnr_ingr = 'R' . str_pad($rezeptnummer, 3, '0', STR_PAD_LEFT); $rezeptnr_zub = $rezeptnr_ingr; // 1. Zutaten in 'ingredients' speichern/updaten $stmt_ingr = $link->prepare(" INSERT INTO ingredients (rezeptnr, ingr) VALUES (?, ?) ON DUPLICATE KEY UPDATE ingr = ? "); $stmt_ingr->bind_param("sss", $rezeptnr_ingr, $zutaten, $zutaten); $stmt_ingr->execute(); // 2. Zubereitungsschritte in 'Zubereitung' speichern // Alte Zubereitungsschritte löschen $sql_del_zub = "DELETE FROM Zubereitung WHERE rezeptnummer = ?"; $stmt_del_zub = $link->prepare($sql_del_zub); $stmt_del_zub->bind_param('s', $rezeptnr_zub); $stmt_del_zub->execute(); // Neue Zubereitungsschritte speichern $zubereitung_schritte = explode("\n", $zubereitung); $schritt_nummer = 1; foreach ($zubereitung_schritte as $schritt_text) { $schritt_text = trim($schritt_text); if (!empty($schritt_text)) { $sql_ins_zub = "INSERT INTO Zubereitung (rezeptnummer, schritt, text) VALUES (?, ?, ?)"; $stmt_ins_zub = $link->prepare($sql_ins_zub); $stmt_ins_zub->bind_param('sis', $rezeptnr_zub, $schritt_nummer, $schritt_text); $stmt_ins_zub->execute(); $schritt_nummer++; } } // 3. Rezept in 'Rezepte' speichern/updaten if ($id > 0) { $sql = "UPDATE Rezepte SET Rezeptnummer = ?, Bezeichnung = ?, Beschreibung = ?, Kategorie = ?, Vorbereitung = ?, Anzahl = ?, Zutaten = ?, Zubereitung = ?, Kommentar = ? WHERE id = ?"; $stmt = $link->prepare($sql); $stmt->bind_param('issssiissi', $rezeptnummer, $bezeichnung, $beschreibung, $kategorie, $vorbereitung, $anzahl_personen, $zutaten, $zubereitung, $kommentar, $id); $stmt->execute(); } else { $sql = "INSERT INTO Rezepte (Rezeptnummer, Bezeichnung, Beschreibung, Kategorie, Vorbereitung, Anzahl, Zutaten, Zubereitung, Kommentar) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"; $stmt = $link->prepare($sql); $stmt->bind_param('issssisss', $rezeptnummer, $bezeichnung, $beschreibung, $kategorie, $vorbereitung, $anzahl_personen, $zutaten, $zubereitung, $kommentar); $stmt->execute(); $id = $stmt->insert_id; } header("Location: index.php"); exit(); } // Bild löschen if (isset($_GET['delete_bild'])) { $bild_id = intval($_GET['delete_bild']); $sql = "SELECT datei_pfad FROM rezepte_bilder WHERE id = ?"; $stmt = $link->prepare($sql); $stmt->bind_param('i', $bild_id); $stmt->execute(); $result = $stmt->get_result(); $bild = $result->fetch_assoc(); if (!empty($bild['datei_pfad']) && file_exists($bild['datei_pfad'])) { unlink($bild['datei_pfad']); } $sql = "DELETE FROM rezepte_bilder WHERE id = ?"; $stmt = $link->prepare($sql); $stmt->bind_param('i', $bild_id); $stmt->execute(); header("Location: Edit.php?id=$id"); exit(); } // Rezept löschen if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['delete'])) { $id = isset($_POST['id']) ? intval($_POST['id']) : 0; if ($id > 0) { // Lösche den Eintrag in 'ingredients', falls vorhanden $sql_rezept = "SELECT Rezeptnummer FROM Rezepte WHERE id = ?"; $stmt_rezept = $link->prepare($sql_rezept); $stmt_rezept->bind_param('i', $id); $stmt_rezept->execute(); $result_rezept = $stmt_rezept->get_result(); $rezept = $result_rezept->fetch_assoc(); if ($rezept) { $rezeptnr_ingr = 'R' . str_pad($rezept['Rezeptnummer'], 3, '0', STR_PAD_LEFT); $sql_del_ingr = "DELETE FROM ingredients WHERE rezeptnr = ?"; $stmt_del_ingr = $link->prepare($sql_del_ingr); $stmt_del_ingr->bind_param('s', $rezeptnr_ingr); $stmt_del_ingr->execute(); // Lösche die Zubereitungsschritte $sql_del_zub = "DELETE FROM Zubereitung WHERE rezeptnummer = ?"; $stmt_del_zub = $link->prepare($sql_del_zub); $stmt_del_zub->bind_param('s', $rezeptnr_ingr); $stmt_del_zub->execute(); } // Lösche das Rezept $sql = "DELETE FROM Rezepte WHERE id = ?"; $stmt = $link->prepare($sql); $stmt->bind_param('i', $id); $stmt->execute(); } header("Location: index.php"); exit(); } ?> <?= $id > 0 ? 'Rezept bearbeiten' : 'Neues Rezept' ?>
Zurück zur Übersicht Rezept anzeigen

0 ? 'Rezept bearbeiten' : 'Neues Rezept' ?>

Rezeptnummer:
Bezeichnung:
Beschreibung:
Kategorie:
Vorbereitung:
Anzahl der Personen:
Zutaten:
Zubereitung:
Kommentar:
Bilder hochladen:
Bildvorschau ×
0): ?>