假设有一个新闻标题的数据库表(其它字段忽略)
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:<?php
$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' => '<b>', //分页导航栏当前页html前修饰符,此处为[b],表示当前页码加粗显示
'curPageSpanPost' => '</b>', //分页导航栏当前页html后修饰符,此处为[/b],表示当前页码加粗显示
'firstPageText' => '第一页', //分页导航栏第一页连接名称
'lastPageText' => '最末页', //分页导航栏最末页连接名称
);
?>
接下来实现分页显示
pagination.php
CODE:<?php
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 '<br>';
}
print $pager['links']); //显示分页导航栏
?>
|