作者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
推 PTTLSboy:借問一下,為什麼使用framework,使用PEAR會沒什麼幫功 11/25 04:05
→ PTTLSboy:助 11/25 04:06
推 chief84:因為framework應該已經有提供怎麼處理分頁的方法了 11/25 08:57
推 PTTLSboy:感謝樓上:) 11/25 20:07