ThinkPHP 3.2.3 Pager分页

不是很喜欢TP的分页类,因为生成的分页url感觉有点不好理解,例如访问路径xxxx/home/show.html,在模板输出分页后,例如产生了页码,页码链接的路径会变成xxxx/home/show/p/页码.html。本人不是很喜欢这种路径,不过也无关大雅。用久了就好了。

$sql = " SELECT f.*,d.dname,FROM_UNIXTIME(f.createtime,‘%Y-%m-%d‘) createdate, "

." FROM_UNIXTIME(f.updatetime,‘%Y-%m-%d‘) updatedate "
                  ." FROM ".C(‘DB_PREFIX‘)."file f LEFT JOIN ".C(‘DB_PREFIX‘)."dir d ON f.did = d.did  where 1=1 ";
            if(!empty($post[‘filename‘])){
                $sql .= " and f.filename like ‘%".$post[‘filename‘]."%‘ ";
            }
            if(!empty($post[‘did‘])){
                $sql .= " and f.did=‘".$post[‘did‘]."‘ ";
            }
            //$result = $file->query($sql);
            $count = count($file->query($sql));
            $page = new \Think\Page($count , PAGE_SIZE);
            //$page->parameter = $post[‘did‘]; //此处的row是数组,为了传递查询条件
            $page->setConfig(‘first‘,‘首页‘);
            $page->setConfig(‘prev‘,‘上一页‘);
            $page->setConfig(‘next‘,‘下一页‘);
            $page->setConfig(‘last‘,‘尾页‘);
            $page -> setConfig(‘header‘,‘<span class="rows">共<b>%TOTAL_ROW%</b>条记录 第<b>%NOW_PAGE%</b>页/共<b>%TOTAL_PAGE%</b>页</span>‘);
            $page -> setConfig(‘theme‘,‘%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER% ‘);
            $show = $page->show();
            $sql .= " LIMIT ".$page->firstRow.",".$page->listRows;
            $result = $file->query($sql);

如上面代码,使用的是query方法查询自定义的sql,page初始化时需要传入2个参数,sql的数据总条数,分页条数;通过setConfig函数来进行相关的page对象定义,show方法产生分页的html,$pager提供了firestRow和lastRows这2个属性来支持分页,可以通过拼接sql或者model提供的limit()函数来进行分页查询。

时间: 2024-11-14 12:59:48

ThinkPHP 3.2.3 Pager分页的相关文章

JS案例之1——pager 分页

原文:JS案例之1--pager 分页 学习JS大半年之久,第一次自己尝试写一些小插件,写法参考网上某位牛人写代码的思路. 此处代码写的是静态分页.如果需动态分页,还可以修改下.第一次写,还有很多地方可以优化.希望各位大牛踊跃拍砖. 预览图 源代码 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" Content="text/html; char

thinkphp结合bootstrap打造个性化分页

分页功能是web开发中常见的一项功能,也存在很多形式,这里主要讲一下利用thinkPHP框架的page类来打造一款bootstrap风格的分页过程. 首先需要去thinkPHP官网现在其分页扩展类http://www.thinkphp.cn/extend/241.html,下载完成后,需要将其放在项目中的ThinkPHP/Extend/Library/ORG/Util/目录下,如果没有这个目录,需要自己进行创建,引入后代码结构如下: 如果直接按照官网的教程进行分页,那么出来的效果仅仅是显示一个简

JS小插件之1——pager 分页

学习JS大半年之久,第一次自己尝试写一些小插件,写法参考网上某位牛人写代码的思路. 此处代码写的是静态分页.如果需动态分页,还可以修改下.第一次写,还有很多地方可以优化.希望各位大牛踊跃拍砖. 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" Content="text/html; charset=utf-8;"> 5 <t

drupal 7 实现自定义 pager 分页功能

最近在写一个drupal界面,要显示一个表格,需要分页.但是drupal自带的分页都是基于SQL查询的,而我这次要做的是从mongo中查询数据显示(虽然是从mongo中查询,其实是抽象出了一个model),所以就想研究一下如何在drupal中实现不基于SQL查询的分页功能. 看了drupal官方文档,发现drupal默认的pager非常依赖于SQL查询,很难满足我的需求.后来虽然找到一个从mongo查询实现的分页,但是想了想还是决定自己写一个比较通用的工具,将来需要分页的地方多着呢! 1 fun

ThinkPHP框架中关于查询分页显示的一个小方法

thinkphp框架是一个非常好用的框架.在日常使用中非常方便,其中包含了有分页的方法,我们用的时候往往会自定义的进行一些修改,下面是我自己修改的一个关于分页的小方法. 代码如下: function getPages($comModel,$where="",$order="",$pageSize="",$join="",$field="",$tmp="",$group="&qu

Pager分页

分页组件: /// <summary> /// 分页组件 /// </summary> public class PagerHelper { /// <summary> /// 分页组件 /// </summary> /// <param name="urlFmt">url格式: newsIndex_{pagenum}.shtml </param> /// <param name="totalsiz

thinkphp 3.2.1 查询分页的实现

这篇文章写得很详细了,http://www.cnblogs.com/tianguook/p/4326613.html. 不过其getpage()方法可以加一个参数,rollPage,Page类的一个公有属性. 另外把header放在span里,而非li里. 修改后的getpage()如下: /** * TODO 基础分页的相同代码封装,使前台的代码更少 * @param $count 要分页的总记录数 * @param int $pagesize 每页查询条数 * @param int $rol

pager分页框架体会

<pg:pager> 元素的属性中: maxPageItems说的是每页偏移量是多少,这个并不是说每一页显示多少,而是第二页比第一页来说,在第一页的尾部增加多少,第一页又被覆盖多少,是决定每一次加多少,pageOffset=(页数-1)*maxPageItems. 而每一页迭代显示多少是由pagesize决定的,也就是一次在数据库取出多少条数据. 而pageOffset通过request和threadLocal传进去,决定了从哪个位置开始取pagesize个对象. items="${

thinkPHP -- 用户名验证、数据分页

用户名验证:  用Ajax 和 js html中 Ajax 将输入框中的值 传入PHP文件, 和数据库中的值进行匹配,用Ajax的回调将结果回调到html文件中, html再用js改变提示信息 //blur鼠标离开时的方法jq方法 //jq获取用户名输入框的标签 $('#name').blur() html文件中 获取input内容 $(this).attr('value'); // 获取某个元素的属性值 头尾分离 文档:8.7包含文件 <include file="header"