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()]); }