我尝试在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
希望你能帮我找到我在这里找不到的东西..
谢谢!
答案 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;