thinkphp条件筛选 例子

ThinkPHP条件筛选实践
本文介绍了ThinkPHP中如何实现复杂的条件筛选功能,并提供了两个具体的案例分析。案例包括商铺信息的模糊查询及状态筛选,以及招聘信息的职位和地区筛选。

thinkphp条件筛选  例子

筛选其实很简单,就是确定好   筛选条件  和  url传参

用程序的语言来说,就是确定好 $where  和  $cid,就可以 了

例子①:

根据如上方式筛选:1.商铺名称 模糊查询;2审核有四种条件:0 请选择,1待审核,2审核通过,3审核未通过;3商铺状态为1(开启)。

满足条件分析:商铺状态必须为1.商铺名称为空,审核是“请选择”时,将显示全部。

具体控制器方法如下:

    public function index(){

        $Store = M('store');

        $condition = '';

        $store_name =I('post.store_name');//接收商铺名称

        $audit =intval(I('post.audit'));//接收审核状态

        /*筛选条件判断*/

        if($store_name){

            $map['store_name'] =array('like',"%".$store_name."%");//like 条件判断

        }

        if($audit){

            $map['is_audit'] =$audit;//审核状态

        }

        $map['store_state'] = 1;//必选条件

$storelist =$Store->where($map)->select();//根据条件筛选

$this->assign('storelist',$storelist);// 赋值数据集

}

分析:使用$map的好处是当其中一个条件为空时,直接查询其他条件。相当于 SQL语句中 字段 is null。如用if语句判断,代码会非常繁琐。

----------------------------------------------------------------------------------

例子②:

    public function index(){
        header("Content-Type: text/html; charset=utf-8");
        $Data = M('zhaopin'); // 实例化Data数据对象
            import('ORG.Util.Page');// 导入分页类
            $adi=$_GET['Position'];
            $aid=$_GET['Recruitment'];
            $count= $Data->where($map)->count();// 查询满足要求的总记录数
            $Page= new Page($count,20);// 实例化分页类 传入总记录数
            $nowPage = isset($_GET['p'])?$_GET['p']:1;
            $list = $Data->where("Position='$adi'")->order('shijian desc,id asc')->page($nowPage.','.$Page->listRows)->select();
            $show = $Page->show();// 分页显示输出
            echo $Data->getLastSql();
            $this->assign('page',$show);// 赋值分页输出
            $this->assign('list',$list);// 赋值数据集
            $this->display(); // 输出模板
    }
<!--区域筛选-->
<div class="cel_cat kuang kong">
<dl class="sz_area" style="margin-bottom:10px;">
<dt>招聘职位:</dt>
<dd>             
<a href="#" >全部</a> 
<volist name="list" id="vo">
    <a href="/index.php/Zhaopin/index/Position/{$vo[Position]}">{$vo['Position']}</a>    
</volist> 
</dd>
</dl>
<dl class="sz_area" id="sbl_">
<dt>区域:</dt>
<dd>
<a href="停车场.html">全深圳</a> 
<volist name="list" id="vo">
    <a href="/index.php/Zhaopin/index/Recruitment/{$vo[Recruitment]}">{$vo['Recruitment']}</a>    
</volist> 


<volist name="list" id="vo">
<dl class="jobli">
<dt>
    <span class="jobname" style="width:35%;"><a href="/index.php/Zhaopin/show/id/{$vo[id]}">{$vo['Job']|mb_substr=0,8,'UTF-8'}</a></span>
    <span style="width:30%;"><a href="/index.php/Zhaopin/show/id/{$vo[id]}">{$vo['company_name']}</a></span>
    <span style="width:16%;">{$vo['Recruitment']}</span>
    <span style="width:15%;">{$vo['shijian']}</span>
</dt>
<dd>
    <span class="jobinfo">
        <b>
            招聘人数:{$vo['hiring']}人    
            公司性质:{$vo['Nature']}    
            规模:{$vo['company_scale']}人    
            经验:{$vo['Work_experience']}年    
            学历:{$vo['Degree_required']}    
            职位月薪:{$vo['salary']}元/月
        </b>
        <br />
        岗位要求: {$vo['Job_requirements']|mb_substr=0,150,'UTF-8'}
    </span>
    <a href="/index.php/Zhaopin/show/id/{$vo[id]}" class="getjob">查看职位</a></dd>
</dl>
</volist>

 

 

 

 

 

 

 

转载于:https://my.oschina.net/afengzxf/blog/837823

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值