Hai vấn đề:
-
Danh sách phải được chuyển thành thứ hai đối số cho
find_in_set
, vì vậy nó phải là:find_in_set(category, ?)
-
Đối số đó phải là kiểu chuỗi (các giá trị được phân tách bằng dấu phẩy). Vì vậy, trước tiên hãy chuyển đổi mảng của bạn thành một chuỗi như vậy bằng
implode
:$csv = implode(",", $category);
Mã:
if($ps = $db->prepare("
SELECT id, product, category, price
FROM products
WHERE price <= ? and find_in_set(category, ?)
ORDER BY id") {
$csv = implode(",", $category);
$ps->bind_param("ds", $price, $csv);
$ps->execute();
$ps->bind_result($id, $name, $cat, $pr);
while($ps->fetch()) {
/* ... echo the results ..... */
}
$ps->free_result();
$ps->close();
}