Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5096266
  • 博文数量: 921
  • 博客积分: 16037
  • 博客等级: 上将
  • 技术积分: 8469
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-05 02:08
文章分类

全部博文(921)

文章存档

2020年(1)

2019年(3)

2018年(3)

2017年(6)

2016年(47)

2015年(72)

2014年(25)

2013年(72)

2012年(125)

2011年(182)

2010年(42)

2009年(14)

2008年(85)

2007年(89)

2006年(155)

分类:

2006-11-19 12:55:21

                运用pear的DB类和Pager类快速实现MySQL数据分页显示

假设有一个新闻标题的数据库表(其它字段忽略)
news.sql

CODE:
CREATE TABLE news (
    ns_id INT NOT NULL AUTO_INCREMENT,
    ns_title VARCHAR(100) NOT NULL,
    PRIMARY KEY (ns_id),
);
我们来看一下如何运用pear的DB类和Pager类快速实现MySQL数据分页显示,代码如下:
首先我们建立一个配置文件config.php,在里面设置数据库DB类的DSN和Pager分页类的分页选项
config.php

CODE:
$dsn = array( //设置数据库DSN
    'phptype'  => 'mysql', //数据库类型
    'username' => 'user',  //用户名
    'password' => 'pass',  //密码
    'hostspec' => 'localhost', //主机
    'database' => 'test', //数据库名
);

$pagerOption = array( //设置Pager分页选项
    'mode'                  => 'Sliding', //分页导航栏样式,此处为Sliding,还可用Jumping。
    'perPage'               => 10,        //每页显示记录数,此处为10条
    'delta'                 => 2,         //分页导航栏当前页码左右显示页码数,此处为2,表示在当前页码左右各显示2个页码,即总共显示5个页码,例如:3 4 5 6 7
    'prevImg'               => '上一页',  //分页导航栏上一页连接名称
    'nextImg'               => '下一页',  //分页导航栏下一页连接名称
    'curPageSpanPre'        => '',     //分页导航栏当前页html前修饰符,此处为[b],表示当前页码加粗显示
    'curPageSpanPost'       => '
',    //分页导航栏当前页html后修饰符,此处为[/b],表示当前页码加粗显示
    'firstPageText'         => '第一页',  //分页导航栏第一页连接名称
    'lastPageText'          => '最末页',  //分页导航栏最末页连接名称
);
?>
接下来实现分页显示
pagination.php

CODE:
require_once('config.php');
require_once('DB.php');
require_once('Wrapper.php'); //Wrapper.php文件包含Pager类针对数据库类的一个封装,在附件中提供下载,也可以在pear的安装包里找到。

$db = DB::connect($dsn);
$sql = 'SELECT ns_title FROM news';

$pager = Pager_Wrapper_DB($db, $sql, $pagerOption, false, DB_FETCHMODE_OBJECT); //获取分页数据
foreach ($pager['data'] as $data) {
    print $ns_title = $data->ns_title; //显示新闻标题
    print '
';
}
print $pager['links']); //显示分页导航栏
?>
阅读(1335) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~