在Sql / php中搜索多个单词

时间:2017-01-20 10:57:44

标签: php mysql sql sorting sql-order-by

我尝试在SQL查询中使用排序实现多次搜索的代码。

SELECT *, COUNT(*) as `total_ingredients`
  FROM opskrifter as k
     , ingredienser as i
 WHERE k.id = i.opskrifterid 
   AND i.ing_name IN ('salt', 'kommen', 'hakkede tomater', 'pasta', 'stødt chilli')
   GROUP BY k.id
 ORDER BY COUNT(*) DESC;

当我在Mysql中运行语句时它工作正常,但是当我尝试实现到我们的php搜索字段时,它只使用我们键入的第一个参数。

SELECT *, COUNT(*) as `total_ingredients`
  FROM opskrifter as k
     , ingredienser as i
 WHERE k.id = i.opskrifterid 
   AND i.ing_name IN ($vals)
   GROUP BY k.id
 ORDER BY COUNT(*) DESC;

$vals = "'" . str_replace(",", "', '", $searchquery) . "'"; and $searchsquery = $_POST['search']; //From the searchfield

希望你能帮我找到我在这里找不到的东西..

谢谢!

1 个答案:

答案 0 :(得分:0)

您只需要爆炸$vals,然后加入,请按照以下代码::

$vals = explode(',', $searchsquery);
$vals  = join("','", $vals);
$vals = "'$vals'";

并将此$ val放在此查询中,这将起作用

SELECT *, COUNT(*) as `total_ingredients`
  FROM opskrifter as k
     , ingredienser as i
 WHERE k.id = i.opskrifterid 
   AND i.ing_name IN ($vals)
   GROUP BY k.id
 ORDER BY COUNT(*) DESC;