SQLクエリで複数の検索をソートしてコードを実装しようとしました。複数の単語をSql/phpで検索する
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の検索フィールドに実装しようとすると、それだけで私たちが入力し、最初の引数を使用しています。
$vals = "'" . str_replace(",", "', '", $searchquery) . "'"; and $searchsquery = $_POST['search']; //From the searchfield
が
おかげ..あなたは、私がここで行方不明です何でも見つける私を助けることを願って!
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;
ヒントに動作しますが:に切り替え現代的で明示的な 'JOIN'構文! (エラーなしで)書く方が簡単で、読みやすく、管理しやすく、必要に応じて外部結合に変換する方が簡単です。 – jarlh
あなたのGROUP BYは無効です!互換性モードでない限り、新しいMySQLバージョンでは動作しません。古いバージョンでは予期しない結果になります。 GROUP BY句が指定されている場合、SELECTリストの各列参照は、グループ化列を特定するか、または集合関数の引数でなければなりません。 – jarlh
@jarlhあなたは例を挙げることができますか? :) –