(PHP & MySQL) hogehoge というテーブルに word title task というカラムがあります。


このテーブルに対する検索スクリプトを作りたいのですが、like でやると一応はできるのですが、スペースを入れて "and検索" することはこの方法ではできません。

どうすればスペースを入れればアンド検索ができるのでしょうか?

簡単なサンプルスクリプトなどをお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/04/24 00:38:14
  • 終了:2006/05/01 00:40:03

回答(1件)

id:Sampo No.1

Sampo回答回数556ベストアンサー獲得回数1042006/04/24 01:32:38

ポイント60pt

$keywords = preg_split("/[  ]+/",$_GET["keywords"]);

// まずは検索ワードをスペースで分解。半角スペースでも全角スペースでも。

$where = " where 1";

// 検索条件は、最初は「すべてのタプル」

foreach( $keywords as $word ){ //検索語それぞれについて

  $where .= " and word like '%$word%'";

  // 検索条件に、andで追加していく

}

$SQL = "select * from hogehoge $where";

// この検索条件をSQL文に埋め込む

ワード検索は、word, title, task どれかのカラムにあればいい、という探索条件でしょうか? もしそうならforeachのループ内は

  $where .= " and ( word like '%$word%'".

         " or title like '%$word%'".

         " or task like '%$word%')";

  // 検索条件に、andで追加していく

のようになりますね。

http://www.yahoo.co.jp/

id:esecua

回答ありがとうございます。

もうひとつ別な方法はないですかね?簡単なやつを。

2006/04/28 22:28:27

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません