CI 分页类的使用
分页本身很简单,无非就是一个 [limit $offset, $length] 的过程。
$length 是每页显示的数据量,这个是固定的。要确定的就只有 $offset了。
在CI中的分页类同样要依据这个来做,他在选择 offset 依据时有两种可选方式:
(1)在url中填入offset,这个参数可以直接作为从数据库中取数据的 $offset 值
(2)在url中填入当前的页码,$offset = ($cur_page-1) * $length
实质上,两者是一致的。只是计算的方式不同:
(1)limit $offset, $per_page
(2)limit ($cur_page-1) * $per_page, $per_page
理解了这个,CI的分页类就很容易使用了。采用哪种方式是通过该类中下面的这个属性来做的:
var $use_page_numbers = FALSE; // Use page number for segment instead of offset
默认是使用方式(2)。 要使用该类,最重要的还是要清楚我们需要怎样的一个URL,根据该URL要获取哪些信息。
这里以 /controller/method/ 为例子,要在method中分页,应该是要构造这样的URL:
/controller/method/123/4 // 123是数据的id, 4 可以是 (1)$offset 或者 (2)$cur_page
那么。就这样配置分页类的数据(这里采用了默认的方式):
public function method($cat_id = 0, $offset=0) {
$config['base_url'] = base_url('controller/method/' . $cat_id);
$config['total_rows'] = $this->some_model->get_tb_count($cat_id);
$config['per_page'] = 2;
$config['uri_segment'] = 4; // 分页信息在 segment 段中的位置。 这里是 /controller/method/$cat_id/$_page_sg
$this->pagination->initialize($config);$all_data = $this->some_model->get_data_limited($cat_id, $config['per_page'], $offset);
}
上面最后这一句对应的函数应该是这样的:
public function get_data_limited($cat_id=-1, $offset, $length) {
return $this->db
->select('pc.photopicid, pc.title, pc.smallpic, pc.bigpic')
->from('t_photo p')
->join('t_photopic pc', 'pc.photoid=p.photoid', 'inner')
->where(array('p.classid'=>intval($cat_id), 'pc.isclose'=>0))
->limit($offset, $length) //这里取分页数据
->get()
->result_array();
} 要对其进行定制也很容易了。。
CI 分页类的使用的更多相关文章
- Ci 分页类的所有属性总结
//#######################自定义分页 $config['uri_segment'] = 3;//分页方法自动测定你 URI 的哪个部分包含页数 $config['num_lin ...
- 一个简单的CI分页类
[php] view plaincopy <span style="font-size:16px;">/** * * 关于 页码有效性的判断需要加在 控制器中判断,即当 ...
- PHP CI分页类带多个参数
通过修改system中的pagination.php,给每个<a>都增加了class="pagination". view页面 <div class=" ...
- Ci 自己的分页类【原创】
这里是自己手写的一个CI分页类的实现 <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); /** ...
- 二十八、CI框架之自己写分页类,符合CI的路径规范
一.参照了CSDN上某个前辈写的一个CI分页类,自己删删改改仿写了一个类似的分页类,代码如下: 二.我们在模型里面写2个数据查询的函数,一个用于查询数据数量,一个用于查询出具体数据 三.我们在控制器里 ...
- CI分页,搜索之后翻页不能用问题
最近在学习用php的CI框架写一个自己的CMS,遇到了些问题.其中一个就是CI分页的时候,我的URL带有其他参数,才能查出我想要的数据.于是我翻遍了谷歌度娘,终于找到了解决办法,和我想的差不多,就贴 ...
- ***CI分页:为CodeIgniter写的分页类
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 ...
- 二十七、CI框架之自己写分页类并加载(写分页还是有难度,搞了一整天)
一.我们写好自己的分页代码,防止library目录中,带构造函数 二.在模型中,添加2个函数,一个是查询数据的条数,第二个是取出数据库中的数据 三.在控制中,写入相应的代码,如下: 四.在界面中,写入 ...
- CI框架分页类
分页类1.分页类参数说明 'base_url' => 指向你的分页所在的控制器类/方法的完整的 URL, 'total_rows' => 数据的总行数, 'per_page' => ...
随机推荐
- 准备Kendo UI 开发环境
准备 首先你需要从 Telerik 网站下载试用版开发包,注意需要注册后才能下载. 下载后直接解压后包含下面几个文件和目录: ./examples – 示例. /js – minified 化后的 J ...
- html5 03
HTML03 一. 表单标签 <form></form> 常用属性 Action 跳转到什么页面 Method 以什么模式提交 Get Url有长度限制 IE6.0 url ...
- SQL 中的group by (转载)
概述 原始表 简单Group By Group By 和 Order By Group By中Select指定的字段限制 Group By All Group By与聚合函数 Having与Where ...
- SCCM Collection 集合获取计算机最后启动时间
获取计算机客户端最后一次启动时间,我们可以通过多种来源获取,如活动目录组 ,而不仅仅是SCCM 收集,希望对您有所帮助,下面分享PowerShell 脚本 # 1 $CollectionName = ...
- python+selenium之数据库连接
首先要安装Python和MySQL的连接工具 下载地址如下: https://pypi.python.org/pypi/PyMySQL https://github.com/PyMySQL/PyMyS ...
- 事务回滚 DEMO
因为有些事物回滚 查询的时候 可能查出来空值 我们肯定不愿意把空值添加数据库里面 一般基本的是这么写 if (object_id('add_T_Disclose_DiscloseList', 'P' ...
- winform ListView创建columnHeader的方法
using System; using System.Windows.Forms; using System.Drawing; using System.Collections; namespace ...
- 2013年省市区/县数据SQL Server(SQL语句)
SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE [dbo].[tbl_Region]( [ ...
- 弄了一个星期的wp 8.1,吐血的感觉
看到8.1出来这么久了,心痒难耐,忍不住想重新把应用写一遍,于是上个星期开始动手,用的mvvm模式,结果一路下来,sqlce不能用了,那好吧,我用sqlite,webrequest变成httpclie ...
- nginx之HTTP模块配置
listen 指令只能使用与server字段里 如果本地调用可以监听本地Unix套接字文件,性能更加,因为不用走内核网络协议栈 listen unix:/var/run/nginx.sock; ...