php条件分页查询语句,ThinkPHP分页时保持查询条件

如何在分页时保持之前的查询条件,tp手册给出了如下答案:

带入查询条件

如果是POST方式查询,如何确保分页之后能够保持原先的查询条件呢,我们可以给分页类传入参数,方法是给分页类的parameter属性赋值:

import('ORG.Util.Page');// 导入分页类

$mapcount = $User->where($map)->count();// 查询满足要求的总记录数

$Page = new Page($count,25);// 实例化分页类 传入总记录数和每页显示的记录数

//分页跳转的时候保证查询条件

foreach($map as $key=>$val) {

$Page->parameter .= "$key=".urlencode($val).'&';

}

$show = $Page->show();// 分页显示输出

往往我们需要自己写sql语句,需要的是字符串的where,如果传入的数组where,那么需要先把这个where转换成数组,放入到我们的sql语句中。代码如下所示:

$where = "";

foreach($wheres as $k=>$v){

$where.=" and ".$k." ";

if(is_array($v)){

$where2 = implode(" ",$v);

}else{

$where2 = " = $v";

}

$where.=$where2;

}

如果查询条件$map是一维数组,以上的确可以实现,但某些时候,我们使用了这种查询方式:

$where['g_name'] =array('like',"'%{$g_name}%'");

那么手册上的办法就不能满足了。 所以需要修改一下:

foreach($where as $key=>$val) {

if(is_array($val)){

if($val[0]=='between'){

$Page->parameter .= "reg_st_date=".urlencode($val[1][0])."&reg_end_date=".urlencode($val[1][1])."&";

}elseif($val[0]=='like'){

$val = trim(trim($val[1],"'"),"%");

$Page->parameter .= "$key=".urlencode($val).'&';

}

}else{

$Page->parameter .= "$key=".urlencode($val).'&';

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值