दो मुद्दे:
-
सूची को सेकंड . के रूप में पास किया जाना चाहिए
find_in_set<पर तर्क /कोड>
, तो यह होना चाहिए:find_in_set(category, ?)
-
वह तर्क टाइप स्ट्रिंग (अल्पविराम से अलग किए गए मान) का होना चाहिए। तो पहले अपनी सरणी को
implode
के साथ ऐसी स्ट्रिंग में बदलें :$csv = implode(",", $category);
कोड:
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();
}