CodeIgniter(CI 3.0)分页类实践记录
最近在学习B/S,选择了PHP CI框架作为切入点。
在尝试制作个人CMS的时候遇到了需要分页的情况,网上好像搜不到3.0版本以上的例子,下面附上本地实验的代码,供参考。
数据库情况如下:

首先看Controller
<?php
/**
* Created by PhpStorm.
* User: erdao
* Date: 16-1-11
* Time: 下午10:25
*/ class P extends CI_Controller
{ /**
* P constructor.
*/
public function __construct()
{
parent::__construct();
$this->load->model('article_model','article');
$this->load->library('pagination');
} /**
* @param int $page 可看做offset
*/
public function index($page=0)
{
//每页显示三条数据
$limit['num']=3;
$limit['offset']=$page; $config['base_url']=site_url('p/index');
$config['total_rows']=$this->article->get_articles_num();//数据总条数
$config['per_page']=$limit['num'];//每页显示条数 $this->pagination->initialize($config); $data=array(
'articles'=>$this->article->get_limit_articles($limit)
); $this->load->view('page_ex',$data);
}
}
再来Model
<?php
/**
* Created by PhpStorm.
* User: erdao
* Date: 16-1-12
* Time: 下午9:48
*/ class Article_model extends CI_Model
{ /**
* Article_model constructor.
*/
public function __construct()
{
parent::__construct();
} /**
* 获取全部数据
* @return mixed
*/
public function get_all_articles()
{
$this->db->from('my_article');
$this->db->order_by('posttime', 'DESC');
$query=$this->db->get();
return $query->result_array();
} /**
* 获取表内数据数量
* @return mixed
*/
public function get_articles_num()
{
return $this->db->count_all('my_article');
} /**
* 获取有限个数的数据
* @param array $arr
* @return mixed
*/
public function get_limit_articles($arr=array('num'=>FALSE,'offset'=>FALSE))
{
if(isset($arr['num']) and isset($arr['offset']) and ($arr['num']!==FALSE) and ($arr['offset']!==FALSE))
{
$query=$this->db->get('my_article',$arr['num'],$arr['offset']);
return $query->result_array();
}
else
{
return $this->get_all_articles();
}
}
}
最后是view
<?php
foreach($articles as $item)
{
echo $item['title'];
} echo $this->pagination->create_links();
附上运行效果截图




需要注意的是,index/9 这里面的9可以看做是数据库中的索引(index),而不是页数
个人博客:http://www.dingshuo89.top
CodeIgniter(CI 3.0)分页类实践记录的更多相关文章
- Ci 自己的分页类【原创】
这里是自己手写的一个CI分页类的实现 <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); /** ...
- YII 1.0 分页类
在控制器中 方法1 $criteria = new CDbCriteria();//AR的另一种写法 $model = Article::model(); $total = $model->co ...
- CI 分页类的使用
分页本身很简单,无非就是一个 [limit $offset, $length] 的过程. $length 是每页显示的数据量,这个是固定的.要确定的就只有 $offset了. 在CI中的分页类同样要依 ...
- CI中的分页
根据MVC的思想,分页是需要传数据到模型中,把页码传过去,在模型中根据页码分配: 更多分页类函数可以通过CI手册的分页类查看: $this -> load ->library('pagin ...
- php-数据库-分页类-上传类
config.ini.php <?php header("content-type:text/html;charset=utf-8"); //项目的根目录 define(&q ...
- ***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 ...
- codeigniter分页类传多个参数(转)
http://example.com/index.php/控制器/方法名/页面的偏移值 页面的偏移值必须是方法名后第一个参数,否者分页类不能判断当前是哪一页,而用ci的分页类进行页面跳转时他是把偏移值 ...
- Spring Boot 2 实践记录之 使用 ConfigurationProperties 注解将配置属性匹配至配置类的属性
在 Spring Boot 2 实践记录之 条件装配 一文中,曾经使用 Condition 类的 ConditionContext 参数获取了配置文件中的配置属性.但那是因为 Spring 提供了将上 ...
- CI框架分页类
分页类1.分页类参数说明 'base_url' => 指向你的分页所在的控制器类/方法的完整的 URL, 'total_rows' => 数据的总行数, 'per_page' => ...
随机推荐
- Jquery zTree结合Asp.net实现异步加载数据
zTree结合Asp.net实现异步加载数据 实现简单操作 zTree 下载 api 访问 :http://www.ztree.me/v3/main.php 例子中用到json数据转化 newtons ...
- tachyon with hadoop
hadoop2.2.0 jdk1.7 tachyon0.5.0 无zookeeper tachyon和hadoop都是伪分布式模式 1.修改core-site.xml文件 <property&g ...
- Linux 查看物理内存
free -k free -m free -b man free cat /proc/meminfo
- [Java] SSH框架笔记_框架整合示例(一)
本文描述的是框架SSH集成的示例,由于在这个过程中有一些小的细节容易被遗忘,特别撰写了一篇小的博文来记录这个过程,希望对自己以及后来者能够起到积极意义. 本文中使用的框架和版本号为: struts-2 ...
- nodejs的mysql模块学习(五)数据库连接配置之SSL
SSL选项 在SSL连接选项中需要一个字符串 或者对象 当是字符串的时候 将使用预定义的SSL配置文件 "Amazon RDS" 只有这一个预定义配置文件 用来连接到亚马逊RDS服 ...
- 2.1.5 用SSS扫描器实施扫描
SSS(Shadow Security Scaner)是一款著名的系统漏洞扫描器,可对很大范围内的系统漏洞进行安全.高效.可靠的安全检测,其系统扫描的速度与精度足以让用户敢和专业安全机构的人以及那些专 ...
- React Native学习-CameraRoll
react-native中CameraRoll模块提供了访问本地相册的功能. 在react版本为0.23.0的项目中,不支持Android,而且在iOS中使用CameraRoll还需要我们手动操作: ...
- POJ 1308 Is It A Tree? (并查集)
Is It A Tree? Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 24237 Accepted: 8311 De ...
- HDU 1069 Monkey and Banana (DP)
Monkey and Banana Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u S ...
- BZOJ 3043
Description 给定一个长度为n的数列{a1,a2...an},每次可以选择一个区间[l,r],使这个区间内的数都加一或者都减一.问至少需要多少次操作才能使数列中的所有数都一样,并求出在保证最 ...