1

ユーザーが結果をフィルタリングできるようにしたい。

このために、デフォルトで「すべて」に設定されているいくつかのドロップダウン リストがあります。これらのフィールドの値は、POST メソッドを介して php に送信され、次のように処理を進めます。

if ($variable == "All") {
$variable = '%';
}

次に、PDO ステートメントでは、WHERE 句は次のようになります。

WHERE field LIKE :variable

その後、配列を介して変数を渡します

SQLクエリをハードコーディングすると、奇妙なゼロ除算エラーが発生します

field LIKE '%'

それはすべて大丈夫です...

これを解決するために多くのオプションを試してきたので、ご協力いただきありがとうございます。

4

2 に答える 2

0

のような役に立たない WHERE 条件をたくさん追加する代わりに

field1 LIKE :value1 OR field2 LIKE :value2 OR field3 LIKE :value3

のようなクエリを生成する

field1 LIKE '%' OR field2 LIKE '%' OR field3 LIKE '%actual filter%'

クエリの実行時間が長くなるだけで、設定された場合にのみフィルターを追加する条件を記述する必要があります。

于 2013-03-13T23:05:05.347 に答える
0

ゼロ除算エラーは、実際には、SQL クエリに CONCAT(name,'%') が含まれていたために発生していました。これは SQL では機能しますが、php ではうまく解釈されません。

代わりに、 CONCAT(name, "%") は問題なく動作します...

新人ミス!

于 2013-03-14T14:07:48.033 に答える