ci框架用active_record模型实现分页的技巧
来源:互联网 发布:linux gpio中断 编辑:程序博客网 时间:2024/06/05 20:26
假设我们有这样的一个日志表,记录了各个事件反生时的时间戳:
CREATE TABLE `logs`(`timestamp` BIGINT,`event` varchar(50))
如果我们要在页面上分页显示出这些事件,假设我们要用ci框架的active_record类实现分页,可能的代码如下:
//根据条件过滤$this->db->select('*')->from('log') ->where('timestamp>=', $args['begintime']) ->where('timestamp<=', $args['endtime']);$this->db->limit($args['limit'], $args['start']);$rs = $this->db->get()->result_array();//过滤后的总的记录数$this->db->select('*')->from('log') ->where('timestamp>=', $args['begintime']) ->where('timestamp<=', $args['endtime']);$cnt = $this->db->count_all_results();
可以看到,条件过滤的代码写了两次,而且获取总的记录数时,还不能过滤limit,如果条件过滤很长,那冗余的代码就多了,你可能会想到写一个方法,将这些条件过滤的代码放进去,的确,这样也是可行的,不过这里还有一个技巧,请看:
//根据条件过滤$this->db->start_cache();$this->db->select('*')->from('log') ->where('timestamp>=', $args['begintime']) ->where('timestamp<=', $args['endtime']);$this->db->limit($args['limit'], $args['start']);$rs = $this->db->get()->result_array();$cnt = $this->db->count_all_results();$this->db->flush_cache();
只要使用active_record的缓存sql即可,方便省事,而且巧在它还不会缓存limit,哈哈
阅读全文
0 0
- ci框架用active_record模型实现分页的技巧
- CI框架的分页
- CI框架分页类及其实现
- CI框架分页类的使用(1)
- ci框架ajax分页
- CI框架搜索分页
- CI框架---分页
- CI的AJAX分页另类实现
- CI的AJAX分页另类实现
- CI分页搜索实现
- CI框架内置分页代码
- CI框架缓存的实现原理
- CI框架分页类的使用(2)
- CI的分页
- CI框架模型中常见的数据库操作
- CI模型的使用
- CI模型的加载
- 解析CI的AJAX分页 另类实现方法
- HDU 6075 Questionnaire
- 最简单的IOS 分类
- HDU
- AI机器学习(二)让机器学会“异或”(C#)
- Python——常见错误备忘
- ci框架用active_record模型实现分页的技巧
- table边框
- 关于网站域名优化与使用需要注意的
- matlab2016b 安装与破解
- python 中 os 和 shutil 模块的常见用法
- Hibernate知识概要
- SQLgroupby报 错 选择列表中的列无效,因为该列没有包含在聚合函数或 GROUP BY 子句中
- 对cookie和session的理解
- SQL Server 做增量