get_product_info.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. require_once 'conn.php';
  3. checkLogin();
  4. header('Content-Type: application/json');
  5. // Product search functionality
  6. if (isset($_GET['search'])) {
  7. $search = mysqli_real_escape_string($conn, $_GET['search']);
  8. // Limit to 30 results for better performance in real-time searching
  9. // Search in ProductName, note, and tips fields, and include category information
  10. $sql = "SELECT p.id, p.ProductName, pc.name as category_name
  11. FROM products p
  12. LEFT JOIN product_categories pc ON p.category_id = pc.id
  13. WHERE p.ProductName LIKE '%$search%'
  14. OR p.note LIKE '%$search%'
  15. OR p.tips LIKE '%$search%'
  16. ORDER BY
  17. CASE
  18. WHEN p.ProductName LIKE '$search%' THEN 1 /* Exact start match first */
  19. WHEN p.ProductName LIKE '%$search%' THEN 2 /* Contains match in name */
  20. WHEN p.note LIKE '%$search%' THEN 3 /* Contains match in note */
  21. WHEN p.tips LIKE '%$search%' THEN 4 /* Contains match in tips */
  22. END,
  23. p.ProductName
  24. LIMIT 30";
  25. $result = mysqli_query($conn, $sql);
  26. $products = [];
  27. while ($row = mysqli_fetch_assoc($result)) {
  28. $products[] = $row;
  29. }
  30. echo json_encode(['products' => $products]);
  31. exit;
  32. }
  33. // Original get product info functionality
  34. $id = isset($_GET['id']) ? (int)$_GET['id'] : 0;
  35. $sql = "SELECT p.unit, pr.price
  36. FROM products p
  37. LEFT JOIN price pr ON p.id = pr.productId AND pr.AreaId = 0
  38. WHERE p.id = $id ORDER BY pr.num ASC LIMIT 1";
  39. $result = mysqli_query($conn, $sql);
  40. if ($row = mysqli_fetch_assoc($result)) {
  41. echo json_encode([
  42. 'unit' => $row['unit'],
  43. 'price' => $row['price'] ?? '0.00'
  44. ]);
  45. } else {
  46. echo json_encode(['error' => 'Product not found']);
  47. }
  48. ?>