prepare($check_sql); $stmt->bind_param("is", $category_id, $subcategory_name); $stmt->execute(); $result = $stmt->get_result(); if ($result->num_rows > 0) { $error = "A subcategory with this name already exists in the selected category"; } else { // Insert new subcategory $sql = "INSERT INTO expense_subcategories (category_id, subcategory_name, description, status, created_at) VALUES (?, ?, ?, 'active', NOW())"; $stmt = $conn->prepare($sql); $stmt->bind_param("iss", $category_id, $subcategory_name, $description); if ($stmt->execute()) { $new_id = $conn->insert_id(); logActivity($_SESSION['user_id'], 'CREATE', 'expense_subcategories', "Created subcategory: $subcategory_name"); $success = "Subcategory '$subcategory_name' created successfully!"; // Clear form $subcategory_name = ''; $description = ''; } else { $error = "Failed to create subcategory: " . $stmt->error; } } } catch (Exception $e) { $error = "Database error: " . $e->getMessage(); } } } // Get subcategories by category $subcategories_by_category = []; $all_subcategories = fetchAll(" SELECT s.*, c.category_name FROM expense_subcategories s JOIN expense_categories c ON s.category_id = c.category_id ORDER BY c.category_name, s.subcategory_name "); foreach ($all_subcategories as $sub) { $subcategories_by_category[$sub['category_name']][] = $sub; } $page_title = 'Add Expense Subcategory'; require_once __DIR__ . '/../includes/header.php'; ?>
No subcategories yet. Create your first one!