<?php
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json");
header("Access-Control-Allow-Methods: GET");
header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
require_once 'db.php';
$response = [
'success' => false,
'message' => 'Invalid request'
];
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
try {
// Fetch all categories (parent_cat = 0)
$categories_stmt = $pdo->prepare("
SELECT id, name
FROM products
WHERE type = 'category' AND parent_cat = 0
ORDER BY name
");
$categories_stmt->execute();
$categories = $categories_stmt->fetchAll(PDO::FETCH_ASSOC);
// Prepare categories with their products
$categorized_products = [];
foreach ($categories as $category) {
// Fetch products for each category
$products_stmt = $pdo->prepare("
SELECT id, name
FROM products
WHERE type = 'product' AND parent_cat = :category_id
ORDER BY name
");
$products_stmt->bindParam(':category_id', $category['id'], PDO::PARAM_INT);
$products_stmt->execute();
$products = $products_stmt->fetchAll(PDO::FETCH_ASSOC);
$categorized_products[] = [
'category_id' => $category['id'],
'category_name' => $category['name'],
'products' => $products
];
}
$response = [
'success' => true,
'message' => 'Products retrieved successfully',
'product_categories' => $categorized_products
];
} catch (PDOException $e) {
$response = [
'success' => false,
'message' => 'Database error: ' . $e->getMessage()
];
}
}
echo json_encode($response);
exit();
?>