- ベストアンサー
phpで複数の検索語を検索対象にしたい
- 半角や全角スペースの入った複数の検索語を検索対象にしたいです。
- 現在のコードは検索フォームに入力されたキーワードを検索し、その結果の件数を表示しています。
- 単語1つの場合では正しく動作しますが、複数のキーワードを含む場合は検索結果がゼロになってしまいます。希望は、複数のキーワードを含む検索を行いたいと考えています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- yambejp
- ベストアンサー率51% (3827/7415)
こんな感じですね <?PHP if(isset($_GET["key"]) and $_GET["key"]!==""){ $sql="select count(*) as count from item where 0"; $pattern="/[ ]+/"; $keywords = preg_split($pattern,$_GET["key"]); foreach($keywords as $val){ $val=mysql_real_escape_string($val); $sql.=" or title like '%".$val."%'"; $sql.=" or Description like '%".$val."%'"; $sql.=" or category like '%".$val."%'"; } $res=mysql_query($sql); $data = mysql_fetch_array($res,MYSQL_ASSOC); echo "検索結果は ".$data["count"]."件です。<br>"; } ?> <form> <input type="text" name="key"> <input type="submit" value="search!"> </form>
お礼
記述いただき助かります! 実際のphpで試してみます。ご回答ありがとうございます。
- singlecat
- ベストアンサー率33% (139/418)
簡単に解説 半角又は全角空白毎に キーワードを配列に格納 半角又は全角空白が連続している場合を考慮しておく 配列に入れたキーワード分 Where文としてor連結する ※複数項目ある場合は、 項目を連結したものにlike文を 入れるか、書かれてるように 項目数分like文をorで連結
お礼
処理の考え方を教えていただきありがとうございます。 他の方が教えて頂いたサイトやサンプルにて考慮して作ってみます。
お礼
参考サイトありがとうございました。