prepare("SELECT * FROM expenses WHERE id = ?"); $stmt->bind_param("i", $expenseId); $stmt->execute(); $result = $stmt->get_result(); $expense = $result->fetch_assoc(); $stmt->close(); if (!$expense) { $_SESSION['error'] = "Expense not found."; header("Location: expenses.php"); exit(); } $buyersQuery = "SELECT id, name FROM buyers ORDER BY name"; $buyers = $conn->query($buyersQuery)->fetch_all(MYSQLI_ASSOC); $categoriesQuery = "SELECT id, name FROM expense_categories ORDER BY name"; $categories = $conn->query($categoriesQuery)->fetch_all(MYSQLI_ASSOC); $headsQuery = "SELECT id, name FROM expense_heads WHERE category_id = " . $expense['category_id'] . " ORDER BY name"; $heads = $conn->query($headsQuery)->fetch_all(MYSQLI_ASSOC); if ($_SERVER["REQUEST_METHOD"] == "POST") { try { $buyer_id = !empty($_POST['buyer_id']) ? intval($_POST['buyer_id']) : NULL; $stmt = $conn->prepare("UPDATE expenses SET date = ?, buyer_id = ?, category_id = ?, head_id = ?, amount = ? WHERE id = ?"); $stmt->bind_param("siiidi", $_POST['date'], $buyer_id, $_POST['category_id'], $_POST['head_id'], $_POST['amount'], $expenseId); $stmt->execute(); $stmt->close(); $_SESSION['success'] = "Expense updated successfully!"; header("Location: expenses.php"); exit(); } catch (Exception $e) { $_SESSION['error'] = "Error updating expense."; error_log("Edit expense error: " . $e->getMessage()); } } $buyerOptions = ''; foreach ($buyers as $buyer) { $selected = $buyer['id'] == $expense['buyer_id'] ? 'selected' : ''; $buyerOptions .= ""; } $categoryOptions = ''; foreach ($categories as $category) { $selected = $category['id'] == $expense['category_id'] ? 'selected' : ''; $categoryOptions .= ""; } $headOptions = ''; foreach ($heads as $head) { $selected = $head['id'] == $expense['head_id'] ? 'selected' : ''; $headOptions .= ""; } $content = <<

Edit Expense

Cancel
HTML; include 'main_layout.php'; $conn->close(); ?>