![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
こんにちは。
複数のキーワードの検索が出来ません。
ゲーム 無料 等のキーワードで検索した場合のwhere句とのコラボ組み合わせが出来ません。
$keyword=$_POST[1];
$rs=$DB->$query("SELECT * FROM data WHERE";
if($keyword){
$str = array(" ", " and ", " AND ");
$keyword = str_replace($str, " ", $keyword);
if(stristr($keyword, " ")){//複数キーワードの検索
$ex = explode(" ", $keyword);
$count = count($exkey);
for($i=0; $i<$count; $i++){
if($i!="0"){
$sql = $sql." and";
}
$sql = $sql." keyword LIKE '%{$ex[$i]}%'");
}
}else{//単体キーワードの検索
$sql = " keyword LIKE '%{$keyword}%'");
}
}
$query = $query.$sql;
$result = mysql_query($query);
...結果表示
これ今のソースですけど for のあたりに何か必要ない文字とか入っていますか。
色々しているうちに無駄に複雑にしてしまっているのではと言う感じもします。
No.1ベストアンサー
- 回答日時:
全体のフォーマットまでみてませんが、手抜きをする方法
「WHERE 1」
としてそれにすべてANDでつないでいくのが簡単
WHERE 1 AND keyword LIKE '・・・' AND keyword LIKE '・・・' AND keyword LIKE '・・・'
逆にor検索は
WHERE 0 OR keyword LIKE '・・・' OR keyword LIKE '・・・' OR keyword LIKE '・・・'
って感じで。
ちなみにLIKE '%・・・%'はSQLとしては速度がかなり遅くなる処理なので
キーワードは正規化して行で処理するか、わかちがきして全文検索
させるのが常套。
ご回答有り難う御座います。
こんにちは。
これの場合は単体も複数の場合も一括に検索するみたいな感じですか。
自分も色々WHERE句では行けないかなと思い試したましたけど現在のプログラムの形がやはり言いのかなとも思いその路線に切り替えていました。
これの場合は $sql = $sql." keyword LIKE '%{$ex[$i]}%'");
の部分に埋め込むのですか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Pro*Cの構文エラー
-
insert1つの処理でもトランザ...
-
【初歩】配列の格納データ数だ...
-
ToDoリストの「完了済」を非表...
-
MySQLのINSERT時にたまに重複に...
-
JAVA SQLServerException 列名 ...
-
VBA ACCESS SQL...
-
phpで作成した構文が上手く動き...
-
csvをDBへ読み込んだら、NULLが...
-
phpでmysqlを使ってデータベー...
-
実行時エラー3131 FROM 句の構...
-
PHPで[]の使い方について
-
アポストロフィを含む文字列の追加
-
テキストボックスに入れた内容...
-
子プロセス終了で閉じてしまうm...
-
検索結果($_POST)が2ページ目...
-
PHP+mysqlでSQL文に文字数制限...
-
mysql_queryで日本語文字列が文...
-
VBAをつかってクエリの情報を抽...
-
phpのエラーについてです
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JAVA SQLServerException 列名 ...
-
<VB.NET>INSERT文でDBにデータ...
-
ResultSetインターフェイスでの...
-
Pro*Cの構文エラー
-
insert1つの処理でもトランザ...
-
データベースに存在するデータ...
-
VBA ACCESS SQL...
-
INSERT,DELETEを同時に
-
MySQLのINSERT時にたまに重複に...
-
VB.NET エラーになる箇...
-
PHP&MySQLでの文字列+数列の一...
-
PHP初心者です。syntax error, ...
-
php MySQL で、更新ボタンを押...
-
like検索の複数キーワードで、...
-
php postgres Insert と updat...
-
ASPでSQL文を使う場合に。
-
チェックボックスからの複数検...
-
Q&Aサイトを作成していてURLの...
-
php データベースから値を取得する
-
phpでforeach ($stmt as $row)...
おすすめ情報