46 lines
1.1 KiB
PHP
46 lines
1.1 KiB
PHP
<?php
|
|
header('Content-Type: application/json');
|
|
|
|
require_once __DIR__ . '/db/config.php';
|
|
|
|
$query = $_GET['q'] ?? '';
|
|
|
|
if (empty($query)) {
|
|
echo json_encode([]);
|
|
exit;
|
|
}
|
|
|
|
try {
|
|
$pdo = db();
|
|
|
|
// Find all products matching the query
|
|
$stmt = $pdo->prepare(
|
|
'SELECT name, retailer, price FROM products WHERE name LIKE :query ORDER BY name, price'
|
|
);
|
|
|
|
$stmt->execute(['query' => '%' . $query . '%']);
|
|
$results = $stmt->fetchAll();
|
|
|
|
// Group prices by product name
|
|
$products = [];
|
|
foreach ($results as $row) {
|
|
if (!isset($products[$row['name']])) {
|
|
$products[$row['name']] = [
|
|
'name' => $row['name'],
|
|
'prices' => []
|
|
];
|
|
}
|
|
$products[$row['name']]['prices'][] = [
|
|
'retailer' => $row['retailer'],
|
|
'price' => $row['price']
|
|
];
|
|
}
|
|
|
|
// Return as a simple array of products
|
|
echo json_encode(array_values($products));
|
|
|
|
} catch (PDOException $e) {
|
|
http_response_code(500);
|
|
echo json_encode(['error' => 'Database error: ' . $e->getMessage()]);
|
|
}
|