mysql — поиск по нескольким словам в Sql / Stack Overflow

Я пытался реализовать код для множественного поиска с сортировкой в ​​запросе 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

Решение

Вам просто нужно взорваться $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;
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector