当前位置: 代码迷 >> PHP >> 求教用TP作类似淘宝那种多级筛选用if语句控制发现传一两个字段还好控制,传三个字段以上就不好控制了,筛选出来的数据就不对了。有什么好的方法吗
  详细解决方案

求教用TP作类似淘宝那种多级筛选用if语句控制发现传一两个字段还好控制,传三个字段以上就不好控制了,筛选出来的数据就不对了。有什么好的方法吗

热度:76   发布时间:2016-04-28 17:12:26.0
求教用TP做类似淘宝那种多级筛选用if语句控制发现传一两个字段还好控制,传三个字段以上就不好控制了,筛选出来的数据就不对了。有什么好的方法吗?

      //多级筛选
                     
                     $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);
                     }


------解决思路----------------------
$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=='') 这样一个个判断了
  相关解决方案