//多级筛选 $name=$_GET[pid]; $brand=$_GET[theme]; $carage=$_GET[price]; echo $carage; if($name="泵车" AND $brand="三一"){ $handmebuyinfo=M("handmebuyinfo"); $map['name']=$name; $map['brand']=$brand; //$map['carage']=$carage; $row=$handmebuyinfo->where($map)->select(); dump($row); } if($name=='' OR $brand=='' OR $carage==''){ $handmebuyinfo=M("handmebuyinfo"); $map['name']=$name; $map['brand']=$brand; $map['carage']=$carage; $map['_logic'] = 'OR'; $row=$handmebuyinfo->where($map)->select(); dump($row); }
フィルターは (および) に関連しています
グループ内の場合 存在する場合複数の選択肢がある場合、グループ内に or (または) 関係が存在します。たとえば、ポンプ車とミキサー車が同時に選択されます
ただし、現時点ではこの必要はありません
ORM を使用するため、アセンブリ作業は完了した ORM によって行われます
必要なのは、空のパラメーターを渡さないことだけです $_GET = array_diff($_GET, array(''));
対応するフィールドと同じ名前の変数名を渡すのが最善です。そうすれば、対応するデータをプログラムする必要はありません
TP はネームマッピング関数を使用しているようです、それを使用できます
フィルタリングは (and)
に関連しています。グループ内に複数の選択肢がある場合、グループ内に or (or) 関係があります。たとえば、ポンプ車とミキサー車が同時に選択されます。 time
ただし、現時点ではこの必要はありません
ORM を使用しているため、アセンブリ作業は ORM によって完了します
空のパラメーターを渡さないようにする必要があるだけです $_GET = array_diff($_GET, array(''));
対応するフィールドと同じ名前の変数名を渡すのがベストなので、プログラミングの必要はありません。 データ
は TP が使用するようです。名前マッピング関数
$a = array( 'a' => 1, 'b' => '', 'c' => 0,);print_r(array_diff($a, array('')));print_r(array_diff($a, array('', 0)));
Array( [a] => 1 [c] => 0)Array( [a] => 1)この方法では、if($name=='') で 1 つずつ判断する必要がありません
$a = array( 'a' => 1, 'b' => '', 'c' => 0,);print_r(array_diff($a, array('')));print_r(array_diff($a, array('', 0)));
Array( [a] => 1 [c] => 0)Array( [a] => 1)この方法if ($name=='') は必要ありません。 一つ一つ判断した結果、最初は を使用することが最終的にわかりました。ブランド']=$map[ブランド]; /$map['carage']=$map[carage];