Я пытался реализовать код для множественного поиска с сортировкой в запросе 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
Надеюсь, что вы можете помочь мне найти то, что я скучаю здесь
Спасибо!
Вам просто нужно взорваться $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;
Других решений пока нет …