解决thinkphp3.2的like模糊查询,分页失效问题

浏览:31193 发布日期:2015/12/30 分类:技术分享 关键字: 分页失效 页码失效 like模糊查询
/*
$map['name']=array('like','%张%');
$map['type']=1;
$map['is_show']=1;
*/

$count      = $User->where($map)->count();// 查询满足要求的总记录数
$Page       = new \Think\Page($count,25);// 实例化分页类 传入总记录数和每页显示的记录数
//分页跳转的时候保证查询条件

//parameter[$key]=urlencode($val);   $val不能是数组;使用like模糊查询的话$val就是数组,该查询字段则不会拼接在页码的条件里面
//方法:对like模糊查询的条件进行重新赋值,把值从数组改成字符串,那样页码的条件就变成  /name/urlencode('张')/
$map['name']='张';   //array('like','%张%')   =>  '张' 

    foreach($map as $key=>$val) {
        $Page->parameter[$key]   =   $val;//如果你要模糊查询中文的话,要把urlencode()去掉
    }
    $show       = $Page->show();// 分页显示输出
例子:$indexpage=I("p",1,"int");
        $limit=15;
        
        if(!empty(I('nickname'))){
            $condtion['nickname']=array("like","%".trim(I('nickname'))."%");
        }                        
        $data=$this->where($condtion)->order('user_id desc')->page($indexpage,$limit)->select();
        $count=$this->where($condtion)->count();
        $page=new \Think\Page($count,$limit);
        //分页跳转的时候保证查询条件
        if(!empty(I('nickname'))){
            $condtion['nickname']=trim(I('nickname'));
        }
        foreach($condtion as $key=>$val) {
            $page->parameter[$key]   =   $val;
        }
        $page->setConfig('header', '<span>共<b>%TOTAL_ROW%</b>条记录 第<b>%NOW_PAGE%</b>页/共<b>%TOTAL_PAGE%</b>页</span>');
           $page->setConfig('prev', '上一页');
        $page->setConfig('next', '下一页');
        $page->setConfig('last', '末页');
        $page->setConfig('first', '首页');
        $page->setConfig('theme', '%FIRST%%UP_PAGE%%LINK_PAGE%%DOWN_PAGE%%END%%HEADER%');
        $page->lastSuffix = false;//最后一页不显示为总页数

        $show=$page->show();
        return array("lists"=>$data,"page"=>$show);
最佳答案
评论( 相关
后面还有条评论,点击查看>>