Ci 简单分页,保证能实现

某晚,自己写项目的时候去找资料,关于CI分页的,

发现百度出来的前几名的基本都是写的都是垃圾,

要么是实现不了,要么就是坑逼

所以我自己在这里写一个,不是很完美,只是说是简单的实现了原理

有了最基本的模型,相信大家都能在上面加上属于自己的东西,不多了

我用这个基本没用视图,视图基本就是CI最开始配置的一个基础的,所以就没有视图文件,都是在控制器中直接输出看值得

创建数据库 用的是mysql的

CREATE TABLE `type` (
  `ty_id` int(11) NOT NULL auto_increment,
  `ty_name` varchar(255) default NULL,
  `ty_title` varchar(50) default NULL,
  `ty_partent_id` varchar(50) NOT NULL default ‘0‘,
  PRIMARY KEY  (`ty_id`)
) ENGINE=MyISAM AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;

插入测试数据

INSERT INTO `type` VALUES (‘2‘, ‘关于我‘, ‘about‘, ‘0‘);
INSERT INTO `type` VALUES (‘3‘, ‘个人日记‘, ‘note‘, ‘0‘);
INSERT INTO `type` VALUES (‘4‘, ‘心情语录‘, ‘feeling‘, ‘0‘);
INSERT INTO `type` VALUES (‘5‘, ‘个人下载‘, ‘download‘, ‘0‘);
INSERT INTO `type` VALUES (‘6‘, ‘优秀文章‘, ‘novel‘, ‘0‘);
INSERT INTO `type` VALUES (‘7‘, ‘留言墙‘, ‘words‘, ‘0‘);
INSERT INTO `type` VALUES (‘8‘, ‘人生感悟‘, null, ‘3‘);
INSERT INTO `type` VALUES (‘9‘, ‘旅行见闻‘, null, ‘3‘);
INSERT INTO `type` VALUES (‘10‘, ‘我的日记‘, null, ‘3‘);
INSERT INTO `type` VALUES (‘11‘, ‘编程语录‘, null, ‘6‘);
INSERT INTO `type` VALUES (‘12‘, ‘Java真经‘, null, ‘6‘);
INSERT INTO `type` VALUES (‘13‘, ‘修真电子书‘, null, ‘5‘);

控制器

welcome.php

<?php if ( ! defined(‘BASEPATH‘)) exit(‘No direct script access allowed‘);

class Welcome extends MY_Controller {

	/**
	 * Index Page for this controller.
	 *
	 * Maps to the following URL
	 * 		http://example.com/index.php/welcome
	 *	- or -
	 * 		http://example.com/index.php/welcome/index
	 *	- or -
	 * Since this controller is set as the default controller in
	 * config/routes.php, it‘s displayed at http://example.com/
	 *
	 * So any other public methods not prefixed with an underscore will
	 * map to /index.php/welcome/<method_name>
	 * @see http://codeigniter.com/user_guide/general/urls.html
	 */
	public function index()
	{

		//其实这里可以不同加载,因为调用model的时候,只要让构造方法去调用就行了
		$this->load->database();

		$this->load->model(‘Type_model‘);
       //装载分页类
       $this->load->library(‘pagination‘);
       //首页

       //url路由类
       $this->load->helper(‘url‘);

       //进行配置
	   //每页显示的数据
	   $pagenum = 2;
       $config[‘per_page‘] = $pagenum;
       //配置基础目录
       $config[‘base_url‘]= site_url(‘welcome/index‘);
       $config[‘base_url‘] = "http://localhost/myblog/index.php/welcome/index/";
       //一共多少条数据
       $config[‘total_rows‘] = $this->db->count_all(‘type‘); //这里是自己需要分页的数据库名

       $this->pagination->initialize($config);
       //输出按钮
       echo $this->pagination->create_links();

       $offset = intval($this->uri->segment(3));
       $id = $this->uri->segment(3);  //获得url第三段字符
       $id =$id ? $id:1;
       $start = ($id - 1) * $pagenum; 

       echo ‘$offset=‘.$offset.‘<br>‘;
       $data=$this->Type_model->get_books($start,$pagenum);

       foreach ($data as $value) {
       	echo ‘$value=‘.$value->ty_name;
       }

}

/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */

模型中就一个方法 ,把这个方法添加到控制器对应的模型中就行了  type_model.php

class Type_model extends CI_Model {	 function get_books($start,$pagenum){
		$sql = "select ty_id,ty_name from type limit $start,$pagenum";		

		$rs = $this->db->query($sql);
		echo ‘最后一条sql语句是:‘.$this->db->last_query();
		$SonTypelist = $rs->result();

	   return $SonTypelist;
	  }}

基本上有了这几段代码,实现的话基本是没有问题的了

时间: 2024-10-15 17:36:55

Ci 简单分页,保证能实现的相关文章

MVC中使用MVCPager简单分页

一.建立数据库以及建立MVC项目 自己随便建立一个数据库,并且添加数据.我建立的数据库如下. 二.建立LINQ to SQL映射. 然后一步步点确定 三.编写代码 在Controllers中建立控制器,模板为空.建立的项目如下: 要添加视图Index 在Controller中选中Index 并且添加视图, 模板选中List, 如下 注意后台要添加对MvcPager的程序集引用,后台代码如下: using Webdiyer.WebControls.Mvc; public class Student

在 asp.net mvc中的简单分页算法

//第一步:建立如下分页实体类:namespace MVCPager.Helpers { /// <summary> /// 简单分页算法类 /// </summary> public class Pager { public int RecordCount { get; set; } public int PageIndex { get; set; } public int PageSize { get; set; } public int PageCount { get { r

PHP+MYSQL实现简单分页

第一次发表文章,试一试,这是我编写的一段小代码,实现简单分页效果,代码如下: 1 <html> 2 <head> 3 <title>物资管理系统</title> 4 <meta http-equiv='Content-Type' content='text/html; charset=utf-8' /> 5 <link href="http://libs.baidu.com/bootstrap/3.0.3/css/bootstra

MVC简单分页

对Car汽车表分页 实现简单分页,放在这里方便查看回顾,自定义每页几条有点问题,有待完善······ 1.新建mvc项目 2.添加linq to sql 数据库连接 3.添加CarBF类 using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Mvc简单分页.Models { public class CarBF { private MyDBDataContext

利用PHP实现MySQL表数据的简单分页

PHP实现MySQL表数据的简单分页 <?php  $conn=mysql_connect("127.0.0.1","root",'123456') or die("数据库连接失败"); mysql_select_db("ym"); mysql_query("set names utf8"); //获取数据的行数 $all=mysql_num_rows(mysql_query("select

不用组件的简单分页

set conn=server.CreateObject("adodb.connection") set rs=server.CreateObject("adodb.recordset") cnpath="data source=" & server.MapPath("question.mdb") conn.open "provider=microsoft.jet.oledb.4.0;" &

ASP.NET Repeater控件实现简单分页

早上,有看MSDN,看到了 PagedDataSource 类 http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.pageddatasource(v=vs.110).aspx 想起以前Insus.NET只对Gridview和DataList控件进行自定义分页.<GridView和DataList分页组件与用户控件>http://www.cnblogs.com/insus/archive/2009/03/19/14

无样式简单分页

只需要返回的类型为PageList均可调用此分页,不需要引用,所以我叫他简单分页,样式简单,虽然没有其他的样式花哨,但用起来也很顺手,所以也记一下,以便以后方便使用吧 代码(写在需要分页的位置) 1 <div id="Pager"> 2 <div> 3 当前第 @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) 4 页 共 @Model.PageCount 页 5 @if (Model.

Hibernate实现不带条件的简单分页查询。

不带条件的简单分页查询. 主要用到: Query query = getSessionDao().createQuery(hql1); 及两个分页条件: query.setFirstResult(firstPage*pageSize); query.setMaxResults(pageSize); /** * 不带条件的简单分页查询 * @author lxh * @version 1.0 * */ public class QueryListByPage extends HibernateDa