我想按用户插入关键字搜索产品。
目前我正在通过爆炸用户关键字并使用SQL LIKE
。
$keywords = explode(' ', $psearch);//psearch = User keyword
$searchTermKeywords = array();
foreach ($keywords as $word)
{
$searchTermKeywords[] = "name Like '%$word%'";
}
$qry_p = "SELECT * FROM product
where ".implode(' AND ', $searchTermKeywords)."
&& status=1
ORDER BY RAND() LIMIT 12";
但只有当产品包含用户输入的名称时,它才会起作用。
这是我的第一张表 “产品”
这是第二个名为 “类别”
现在我想要执行一项操作,例如用户搜索Saree
所以所有产品的类别ID是1(是由saree 表示)应该显示。
答案 0 :(得分:0)
在您的情况下,使用产品category = category.id
在产品和类别表中进行内部联接,并在选择的术语中将category.name添加为category_name。
同时使用
foreach ($keywords as $word)
{
$searchTermKeywords[] = "product.name Like '%$word%' OR category_name Like '%$word%'";
}
请尝试上面的代码并根据您的搜索字词字段进行更新。 希望这会对你有所帮助。