最近在学习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. 减肥App计划

    写在前面   最近公司需求不多,正好研究一下 App 瘦身的办法,写了点小总结. 如果你不知道下面几个问题,不妨可以看看文章. 使用 .xcassets 有什么好处? @1x .@2x 和 @3x 会 ...

  2. 如何利用log4Net自定义属性配置功能记录完整的日志信息

    log4Net作为专业的log记录控件,对于它的强大功能大家一定不陌生.下面我将详细介绍如何利用其自定义属性,让日志信息更完整. 一,创建测试工程,log4Net组件可以自己从网上下载,也可通过Nug ...

  3. GCT考试如何准备

    备战考试篇 回首连续的3个月的那段复习过程,感受颇多颇深!以下就各科复习,我谈谈自己的感受和经验: 语文复习: 语文主要是考察你的文学功底和素养以及已经具备的工作生活的常识.从03,04两年的考试真题 ...

  4. Linux常用命令速查备忘

    Linux常用命令速查备忘   PS:备忘而已,详细的命令参数说明自己man 一. 启动,关机,登入,登出相关命令 [login] 登录 [logout] 登出 [exit] 登出 [shutdown ...

  5. 【阿里云产品公测】ACE安装wordpress博客图文教程

    作者:阿里云用户51干警网 阿里云ace搭建wordpress图文教程 按照大大说的,wordpress确实能够轻松创建,只有几步.     我想说,小白的世界技术大大还是不了解.想当初我了解一下怎么 ...

  6. iOS 手势大全

    1.Touch事件 //系统自动调用 //一个UITouch代表一根手指 按住option变成两根手指 //虽然是两个手指,但只执行一次触摸事件 - (void)touchesBegan:(NSSet ...

  7. 05. 取SQL分组中的某几行数据

    对表中数据分组,有时只需要某列的聚合值:有时却需要返回整行数据,常用的方法有:子查询.ROW_NUMBER.APPLY,总体感觉还是ROW_NUMBER比较直观.测试数据: if OBJECT_ID( ...

  8. 常用排序算法之JavaScript实现

    1.插入排序 1)算法简介 插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法.它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从 后向前扫描,找到相应位置并插入 ...

  9. DATASNAP REST WEBSERVICES中间件如何跨平台使用

    DATASNAP REST WEBSERVICES中间件如何跨平台使用   准备使用DELPHI开发移动设备开发的朋友对DATASNAP REST中间件不可不了解. DATASNAP REST新型WE ...

  10. 第一章 响应式设计之Media Quer

    书里谈到尽量不要使用Media Queriy. 但是过多使用media query,会导致CSS变得脆弱和页面难以维护.一些方法可以减少页面使用 media query. 响应式设计: (1) 使用百 ...