こんにちは私のサイトの検索エンジンを持っています。私は2つの選択フィールドを持っています。私は例を与えるしたいと思います:範囲で選択クエリを構成する方法
input_a:3 input_b:5
ので、クエリは次のようになります。
if (($input_a == true) && ($input_b == false)){
$filter_orders[] = " `col` LIKE '%$input_a%' ";
}
if (($input_a == false) && ($input_b == true)){
$filter_orders[] = " `col` LIKE '%$input_b%' ";
}
if (($input_a == true) && ($input_b == true)){
$filter_orders[] = " `col`= `col`>='%$input_a%' AND `col` = `col`<='%$input_b%' ";
今の問題は、最後の場合、私は知らないということであり、クエリが正しくないかどうか。その背後にあるロジックは、私の例の場合、3と5の間の範囲が見つかるはずです。
ので1,2 [3,4,5]
6,7,8 ...
私は本当に感謝私を助けることができる誰かがあれば。
ありがとうございます。 おそらく全体の文は次のようになりたい::
else if
だけではなく
if
助け実行してください他の
if
sがアレント作るの挿入
if ((!empty($input_a) && is_int($input_a)) && (empty($input_b) || !is_int($input_b)) {
$filter_orders[] = " `col`='%$input_a%' ";
}
else if ((empty($input_b) || !is_int($input_a)) && (!empty($input_b) && is_int($input_b))) {
$filter_orders[] = " `col`='%$input_b%' ";
}
else if (!empty($input_a) && !empty($input_b) && is_int($input_a) && is_int($input_b)) {
$filter_orders[] = " `col`>='%$input_a%' AND `col`<='%$input_b%' ";
}
$filter_orders[] = " `col`>='%$input_a%' AND `col`<='%$input_b%' ";
EDITあるべき
%xyz%はLIKEとの組み合わせでのみ機能します。だから私はこれらを残さなければならず、それは機能する。どうもありがとう。 – bonny