1つの単語を完全に検索することができます。私は2つ以上の言葉を同様に働かせたいと思っています。PHPコードがうまく動作しません。検索機能
は、これまでのところ、私は複数の単語を検索した場合の結果は、このことで、はるかにこれを得た:複数の単語の検索がある場合になるよう
SELECT id, title, tag, type
FROM table WHERE **AND** p.id LIKE '%flower%' OR title LIKE '%flower%' OR tag LIKE '%flower%' OR type LIKE '%flower%'
AND p.id LIKE '%floral%' OR title LIKE '%floral%' OR tag LIKE '%floral%' OR type LIKE '%floral%'
ORDER BY title
にはどうすれば適切にを利用し、ん私は私のコードで余分なANDを取得しません。
もっと効率的な方法がありますか?
if (count($error) < 1) {
$searchSQL = "SELECT id, title, tag, type
FROM table
WHERE ";
$searcheach = explode(" ", $searchTerms);
foreach($searcheach as $searchword) {
//if more than one word do this else do that
if(strpos(trim($searchTerms), ' ') !== false) {
$searchSQL .= "AND p.id LIKE '%{$searchword}%'
OR title LIKE '%{$searchword}%'
OR tag LIKE '%{$searchword}%'
OR type LIKE '%{$searchword}%' ";
}
else {
$searchSQL .= "p.id LIKE '%{$searchword}%'
OR title LIKE '%{$searchword}%'
OR tag LIKE '%{$searchword}%'
OR type LIKE '%{$searchword}%' ";
}
}
$searchSQL .= "ORDER BY title";
あなたの質問は非常に不明です...あなたは何をしようとしているのか詳しく説明できますか? if文の最初の部分にある 'AND'の目的は何ですか? –
あなたは[Lucene](http://lucene.apache.org/java/docs/index.html)を試しましたか?あなたの人生はずっと楽になります。 – NullUserException