php 搜索分页代码,Thinkphp搜索时首页分页和搜索页保持条件分页的方法

本文实例讲述了Thinkphp实现搜索时首页分页和搜索页保持条件分页的方法。分享给大家供大家参考。具体实现方法如下:

在做搜索查询时突然发现在首页用的分页代码在搜索页使用时出现错误,首页分页代码(代码中标注start与end部分为分页代码)

public function index(){

$res=D('Info');// 实例化Data数据对象

/**********start************/

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

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

$Page = new Page($count,3);// 实例化分页类 传入总记录数(另一个参数为自定义分页条数)

//$Page->rollPage = 3;//默认情况下,页面显示的页数是5  可以修改

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

// 进行分页数据查询

$list = $res->order('iid desc')->limit($Page->firstRow.','.$Page->listRows)->select();

/**********end************/

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

/*********start*************/

$this->assign('page',$show);// 赋值分页输出

/*********end*************/

$this->display(); // 输出模板

}

搜索代码(代码中start与end之间标注的部分为分页代码,注释标注了分页跳转时保存查询条件),以下两种方法都可以保存条件(不清楚这样是不是写的规范),查询:

public function search() {

$res=D('Info');

$name=$_REQUEST['name'];

$sear['name'] = array('like','%'.$name.'%');

/*********start*************/

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

$count=$res->where($sear)->count();//查询数据条数

$Page=new Page($count,2);//实例化分页函数

/*********end*************/

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

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

$Page->parameter   .=   "$key=".urlencode($name)."&";//赋值给Page

}

/*********start*************/

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

// 进行分页数据查询

$val=$res->where($sear)->$val=$res->where($sear)->limit($Page->firstRow.','.$Page->listRows)->select();

/*********end*************/

$this->assign('search',$val);

/*********start*************/

$this->assign('page',$show);

/*********end*************/

$this->display();

}

注:

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

$Page->parameter   .=   "$key=".urlencode($name)."&";//赋值给Page

}

"$key=".urlencode($name)."&";这里面的$name 相对应提取的是 $name=$_REQUEST['name'];获取的值。

第二种:

public function search() {

$res=D('Info');

$name=$_REQUEST['name'];

$sear['name'] = array('like','%'.$name.'%');

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

$count=$res->where($sear)->count();//查询数据条数

$Page=new Page($count,2);//实例化分页函数

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

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

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

}

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

// 进行分页数据查询

$val=$res->where($sear)->limit($Page->firstRow.','.$Page->listRows)->select();

$this->assign('search',$val);

$this->assign('page',$show);

$this->display();

}

使用$val[1]是因为$sear是一个数组,而$val[1]对应的是我要查找的条件,这样就可以保持条件进行分页了.

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》及《ThinkPHP常用方法总结》

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值