【问题标题】:Search Using id and name from two different table使用来自两个不同表的 id 和 name 进行搜索
【发布时间】:2018-04-28 10:50:21
【问题描述】:

我想根据用户插入的关键字来搜索产品。 目前我正在通过爆炸用户关键字和使用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 的产品(mean by saree)都应该显示。

【问题讨论】:

  • "现在我想执行一个操作,例如用户搜索 Saree 所以所有类别 id 为 1 的产品" 向我们展示您正在使用的完整查询以及带有示例数据的完整表结构(没有 PHPMyAdmin 图像)在 sqlfiddle.com
  • 先生更新了!

标签: php mysql sql join


【解决方案1】:

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

更新您的搜索条件

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

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

【讨论】:

    猜你喜欢
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多