think组合查询AND和OR一起用

本文介绍ThinkPHP中使用$_where与$where进行复杂查询的方法。通过不同条件组合实现AND与OR逻辑,支持板块筛选及时间范围查询等功能。

如下示例:

 

$_where 和 $where组合查询

 

$_where之间用OR

$where之间用AND

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
$condition = I('post.condition');
switch($condition){
    case 1:
        $where['t.digest'] = array('gt',0);
        break;
    case 2:
        $where['t.displayorder'] = 4;
        break;
    case 3:
        $where['t.type'] = 1;
        break;
    default:
        $_where['t.type']       = 1;
        $_where['t.displayorder']= 4;
        $_where['t.digest']     = array('gt',0);
        $_where['_logic']       = 'or';
        $where['_complex']      = $_where;
}
// 板块筛选
if($_POST['fid']){
    $where['t.fid'] = I('post.fid');
}
// 时间筛选
if($_POST['start_time'and $_POST['end_time']){
    $where['t.add_time'] = array(
        array('egt',strtotime(I('post.start_time'))),
        array('elt',strtotime(I('post.end_time')))
    );
}else{
    if($_POST['start_time']){
        $where['t.add_time'] = array('egt',strtotime(I('post.start_time')));
    }else if($_POST['end_time']){
        $where['t.add_time'] = array('elt',strtotime(I('post.end_time')));
    }
}

转载于:https://www.cnblogs.com/chinalorin/p/5855474.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值