作者liaosankai (低温烘焙)
看板PHP
标题[分享] PEAR分页读取范例
时间Sat Nov 24 18:06:03 2012
最近整理文件,发现之前使用PEAR写的程式,整理了一下与大家分享。
这个范例对於目前已经习惯使用framework的人,可能没什麽帮助。
不过仍然用传统写法的人,或许可以参考看看。试着使用PEAR来增加
开效率。
关於安装PEAR的教学,可参考下列连结
1)
http://goo.gl/Ae5qQ
2)
http://goo.gl/foyno
<?php
/**
* PEAR设置
*/
//设定PEAR函式库位置
$path= "C:\wamp\www\PEAR-1.9.4";
set_include_path(get_include_path(). PATH_SEPARATOR .$path);
//载入相关函式库
include_once("PEAR.php");//PEAR-1.9.4
include_once("DB.php");//DB-1.7.13
include_once("Pager.php");//Pager-2.4.8
/**
* 建立资料库连结
*/
$dsn = array(
'phptype' => 'mysql',
'username' => 'root',
'password' => '',
'hostspec' => 'localhost',
'database' => 'demo',
);
$db = DB::connect($dsn);
if (PEAR::isError($db)) {
die($db->getMessage());
} else {
$db->query('SET NAMES UTF8');
}
/**
* 设置分页器
*/
//计算资料总笔数
$total = $db->getOne('SELECT COUNT(*) FROM items');
$config = array(
'mode' => 'Sliding',//分页模式
'urlVar' => 'page_no',//页码变数名称($_GET['page_no']);
'delta' => 15,
'perPage' => 10, //每页笔数
'totalItems' => $total, //资料总笔数
);
//建立分页器
$pager = Pager::factory($config);
//建立分页连结
$links = $pager->getLinks();
/**
* 资料读取范例
*/
//取得检视的页码
$page_no = isset($_GET['page_no']) ? $_GET['page_no'] : 1;
//计算资料的读取范围
list($from, $to) = $pager->getOffsetByPageId($page_no);
//执行SQL查询
$data = $db->limitQuery("SELECT * FROM items", ($from - 1),
$config['perPage']);
?>
<html>
<head><meta charset="utf-8" /></head>
<body>
<!-- 资料输出 -->
<table>
<?php while ($row = $data->fetchRow(DB_FETCHMODE_OBJECT)):?>
<tr>
<!--
(预设)使用 DB_FETCHMODE_ORDERED $row[0]
使用 DB_FETCHMODE_ASSOC $row['fieldName']
使用 DB_FETCHMODE_OBJECT $row->fieldName
-->
<td><?php echo $row->name; ?></td>
</tr>
<?php endwhile; ?>
</table>
<!-- 分页器 -->
<div><?php echo $links["all"]?></div>
</body>
</html>
--
欢迎来我的网志看看
@
http://liaosankai.pixnet.net/blog
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.71.188.102
1F:推 PTTLSboy:借问一下,为什麽使用framework,使用PEAR会没什麽帮功 11/25 04:05
2F:→ PTTLSboy:助 11/25 04:06
3F:推 chief84:因为framework应该已经有提供怎麽处理分页的方法了 11/25 08:57
4F:推 PTTLSboy:感谢楼上:) 11/25 20:07