搜索使用两个不同表中的id和name

时间:2018-04-28 10:50:22

标签: php mysql sql join

我想按用户插入关键字搜索产品。 目前我正在通过爆炸用户关键字并使用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";  

但只有当产品包含用户输入的名称时,它才会起作用。


这是我的第一张表 “产品”

enter image description here

这是第二个名为 “类别”

enter image description here

现在我想要执行一项操作,例如用户搜索Saree所以所有产品的类别ID是1(是由saree 表示)应该显示。

1 个答案:

答案 0 :(得分:0)

在您的情况下,使用产品category = category.id在产品和类别表中进行内部联接,并在选择的术语中将category.name添加为category_name。 同时使用

更新搜索条件

foreach ($keywords as $word) { $searchTermKeywords[] = "product.name Like '%$word%' OR category_name Like '%$word%'"; }

请尝试上面的代码并根据您的搜索字词字段进行更新。 希望这会对你有所帮助。