最近在学习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)分页类实践记录的更多相关文章

  1. Ci 自己的分页类【原创】

    这里是自己手写的一个CI分页类的实现 <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); /** ...

  2. YII 1.0 分页类

    在控制器中 方法1 $criteria = new CDbCriteria();//AR的另一种写法 $model = Article::model(); $total = $model->co ...

  3. CI 分页类的使用

    分页本身很简单,无非就是一个 [limit $offset, $length] 的过程. $length 是每页显示的数据量,这个是固定的.要确定的就只有 $offset了. 在CI中的分页类同样要依 ...

  4. CI中的分页

    根据MVC的思想,分页是需要传数据到模型中,把页码传过去,在模型中根据页码分配: 更多分页类函数可以通过CI手册的分页类查看: $this -> load ->library('pagin ...

  5. php-数据库-分页类-上传类

    config.ini.php <?php header("content-type:text/html;charset=utf-8"); //项目的根目录 define(&q ...

  6. ***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 ...

  7. codeigniter分页类传多个参数(转)

    http://example.com/index.php/控制器/方法名/页面的偏移值 页面的偏移值必须是方法名后第一个参数,否者分页类不能判断当前是哪一页,而用ci的分页类进行页面跳转时他是把偏移值 ...

  8. Spring Boot 2 实践记录之 使用 ConfigurationProperties 注解将配置属性匹配至配置类的属性

    在 Spring Boot 2 实践记录之 条件装配 一文中,曾经使用 Condition 类的 ConditionContext 参数获取了配置文件中的配置属性.但那是因为 Spring 提供了将上 ...

  9. CI框架分页类

    分页类1.分页类参数说明 'base_url' => 指向你的分页所在的控制器类/方法的完整的 URL, 'total_rows' => 数据的总行数, 'per_page' => ...

随机推荐

  1. 让Laravel5支持memcache的方法

    Laravel5框架在Cache和Session中不支持Memcache,看清了是Memcache而不是Memcached哦,MemCached是支持的但是这个扩展真的是装的蛋疼,只有修改部分源码让其 ...

  2. Mybatis-Generator 自动生成Dao、Model、Mapping相关文档

    最近在学习mybatis,结果在写Mapping的映射文件时insert语句一直报错,于是想看看标准的映射文件是什么样.百度到Mybatis-Generator 自动生成Dao.Model.Mappi ...

  3. Cyclic Nacklace

    Problem Description CC always becomes very depressed at the end of this month, he has checked his cr ...

  4. 关于报错:'sharedApplication' is unavailable: not available on iOS (App Extension) - Use view controller based

    最近在看Extension相关知识的时候,自己写了个小demo 发现[UIApplication sharedApplication]这个方法敲不出来了, 总是报错:'sharedApplicatio ...

  5. 日期类型的input元素设置默认值为当天

    html文件:<input name="" type="date" value="" id="datePicker" ...

  6. 2013 长沙网络赛J题

    思路:这题对于其他能退出所有值的情况比较好像,唯一不能确定的是XXOXXOXXOXX这个形式的序列,其中XX表示未知,O表示已知. 我们令num[1]=0,那么num[4]=sum[3]-sum[2] ...

  7. python 装 ez_setup.py 出错

    python 装 ez_setup.py出错setuptools,pip,install,UnicodeDecodeError: 'ascii' codec can't decode byte.解决: ...

  8. 【转】google谷歌百度收录网站的技巧方法,如何让百度收录?

    下面由本人巴山给大家讲述一下搜索引擎收录网站的技巧虚拟主机 (1)在网站上线前,要有足够多的内容网站优化 确保网站在正式上线的时候,有100页以上的充实内容,而且这些内容尽可能的进行下编辑,优化,自己 ...

  9. sql 了解

    char,varchar,nvarchar区别 类型 长度 使用说明 长度说明 char(n)  固定长度 索引效率高 程序里面使用trim去除多余的空白 n 必须是一个介于 1 和 8,000 之间 ...

  10. 根据不同的分辨率选择不同的css文件

    <SCRIPT language=javascript> <!-- Begin if (screen.width == 640) { document.write('<link ...