Thinkphp搜索时首页分页和搜索页保持条件分页的方法


Posted in PHP onDecember 05, 2014

本文实例讲述了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框架的PHP程序设计有所帮助。

PHP 相关文章推荐
整合了前面的PHP数据库连接类~~做成一个分页类!
Nov 25 PHP
ajax缓存问题解决途径
Dec 06 PHP
javascript 小型动画组件与实现代码
Jun 02 PHP
PHP类与对象中的private访问控制的疑问
Nov 01 PHP
PHP图片裁剪函数(保持图像不变形)
May 04 PHP
基于php实现随机合并数组并排序(原排序)
Nov 26 PHP
微信公众号开发之语音消息识别php代码
Aug 08 PHP
php利用递归实现删除文件目录的方法
Sep 23 PHP
thinkPHP5 tablib标签库自定义方法详解
May 10 PHP
php集成开发环境详解
Sep 24 PHP
laravel 解决强制跳转 https的问题
Oct 22 PHP
is_file和file_exists效率比较
Mar 14 PHP
ThinkPHP模版引擎之变量输出详解
Dec 05 #PHP
ThinkPHP添加更新标签的方法
Dec 05 #PHP
彻底删除thinkphp3.1案例blog标签的方法
Dec 05 #PHP
php树型类实例
Dec 05 #PHP
Yii框架form表单用法实例
Dec 04 #PHP
Yii不依赖Model的表单生成器用法实例
Dec 04 #PHP
Yii分页用法实例详解
Dec 04 #PHP
You might like
第四节 构造函数和析构函数 [4]
2006/10/09 PHP
PHP 组件化编程技巧
2009/06/06 PHP
PHP读取PDF内容配合Xpdf的使用
2012/11/24 PHP
PHP回调函数概念与用法实例分析
2017/11/03 PHP
IE autocomplete internet explorer's autocomplete
2007/06/30 Javascript
基于jQuery的仿flash的广告轮播代码
2010/11/04 Javascript
JavaScript 高级篇之闭包、模拟类,继承(五)
2012/04/07 Javascript
jQuery 1.7.2中getAll方法的疑惑分析
2012/05/23 Javascript
jQuery 拖动层(在可视区域范围内)
2012/05/24 Javascript
如何在指定的地方插入html内容和文本内容
2013/12/23 Javascript
jQuery插件学习教程之SlidesJs轮播+Validation验证
2016/07/12 Javascript
vue实现的双向数据绑定操作示例
2018/12/04 Javascript
vue 实现Web端的定位功能 获取经纬度
2019/08/08 Javascript
Layui多选只有最后一个值的解决方法
2019/09/02 Javascript
python基础教程之基本内置数据类型介绍
2014/02/20 Python
Python中使用gzip模块压缩文件的简单教程
2015/04/08 Python
python如何压缩新文件到已有ZIP文件
2018/03/14 Python
Python批量合并有合并单元格的Excel文件详解
2018/04/05 Python
python脚本执行CMD命令并返回结果的例子
2019/08/14 Python
python调用Matplotlib绘制分布点图
2019/10/18 Python
Python 用__new__方法实现单例的操作
2020/12/11 Python
canvas简单连线动画的实现代码
2020/02/04 HTML / CSS
ECCO爱步美国官网:来自丹麦的鞋履品牌
2016/11/23 全球购物
Ibood荷兰:互联网每日最佳在线优惠
2019/02/28 全球购物
日本航空官方网站:JAL
2019/06/19 全球购物
财务管理专业毕业生求职信范文
2013/09/21 职场文书
2014年会演讲稿范文
2014/01/06 职场文书
会计电算化专业自荐信
2014/03/15 职场文书
班主任对学生的评语
2014/04/26 职场文书
我们的节日国庆活动方案
2014/08/19 职场文书
2014年化验室工作总结
2014/11/21 职场文书
通报表扬范文
2015/01/17 职场文书
售后服务承诺函格式
2015/01/21 职场文书
2015年高校教师个人工作总结
2015/05/25 职场文书
Redis延迟队列和分布式延迟队列的简答实现
2021/05/13 Redis
redis不能访问本机真实ip地址的解决方案
2021/07/07 Redis