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程序的方法
Mar 09 PHP
php XPath对XML文件查找及修改实现代码
Jul 27 PHP
使用PHP下载CSS文件中的图片的代码
Sep 24 PHP
微信支付开发教程(一)微信支付URL配置
May 28 PHP
ThinkPHP缓存方法S()概述
Jun 13 PHP
PHP GD库生成图像的几个函数总结
Nov 19 PHP
PHP生成图片缩略图类示例
Jan 12 PHP
CodeIgniter框架数据库基本操作示例
May 24 PHP
详解在YII2框架中使用UEditor编辑器发布文章
Nov 02 PHP
thinkphp5框架实现的自定义扩展类操作示例
May 16 PHP
Laravel 添加多语言提示信息的方法
Sep 29 PHP
Aliyun Linux 编译安装 php7.3 tengine2.3.2 mysql8.0 redis5的过程详解
Oct 20 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
php 5.3.5安装memcache注意事项小结
2011/04/12 PHP
PHP判断文件是否存在、是否可读、目录是否存在的代码
2012/10/03 PHP
64位windows系统下安装Memcache缓存
2015/12/06 PHP
PHP Swoole异步读取、写入文件操作示例
2019/10/24 PHP
让mayfish支持mysqli数据库驱动的实现方法
2010/05/22 Javascript
javascript下数值型比较难点说明
2010/06/07 Javascript
基于jquery的实现简单的表格中增加或删除下一行
2010/08/01 Javascript
轻松创建nodejs服务器(10):处理上传图片
2014/12/18 NodeJs
javascript笛卡尔积算法实现方法
2015/04/08 Javascript
基于jQuery倒计时插件实现团购秒杀效果
2016/05/13 Javascript
浅谈Jquery中Ajax异步请求中的async参数的作用
2016/06/06 Javascript
使用BootStrap和Metroui设计的metro风格微网站或手机app界面
2016/10/21 Javascript
vue组件实例解析
2017/01/10 Javascript
深入浅出理解JavaScript高级定时器原理与用法
2018/08/02 Javascript
koa2实现登录注册功能的示例代码
2018/12/03 Javascript
使用Vue Composition API写出清晰、可扩展的表单实现
2020/06/10 Javascript
[01:02:26]DOTA2-DPC中国联赛 正赛 SAG vs RNG BO3 第二场 1月18日
2021/03/11 DOTA
Python3遍历目录树实现方法
2015/05/22 Python
使用pyecharts在jupyter notebook上绘图
2020/04/23 Python
Python算法输出1-9数组形成的结果为100的所有运算式
2017/11/03 Python
Python中字典的浅拷贝与深拷贝用法实例分析
2018/01/02 Python
Django进阶之CSRF的解决
2018/08/01 Python
Python查找不限层级Json数据中某个key或者value的路径方式
2020/02/27 Python
python中使用you-get库批量在线下载bilibili视频的教程
2020/03/10 Python
在Sublime Editor中配置Python环境的详细教程
2020/05/03 Python
关于Theano和Tensorflow多GPU使用问题
2020/06/19 Python
阿拉伯世界最大的电子卖场:Souq埃及
2016/08/01 全球购物
PHP面试题-$message和$$message的区别
2015/12/08 面试题
Java程序员常见面试题
2015/07/16 面试题
办公室主任主任岗位责任制
2014/02/11 职场文书
英语故事演讲稿
2014/04/29 职场文书
单位委托书怎么写
2014/08/02 职场文书
教师工作态度自我评价
2015/03/05 职场文书
葬礼主持词
2015/07/02 职场文书
mysql 8.0.24版本安装配置方法图文教程
2021/05/12 MySQL
MySQL8.0无法启动3534的解决方法
2021/06/03 MySQL