程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> SMARTY分頁

SMARTY分頁

編輯:PHP綜合

使用SMARTY進行分頁遇到問題的人們,將從這裡學到如何更好的在SMARTY中進行分頁....首先必需說明的

是:
這篇教程是我從別的教程改過來的,所以不能說是完全原創,但我把它說明的更加詳細,以及提供了完備的

示例..
你將很清楚的理解裡的每個變量的作用及其使用方法....希望這篇文字對對你產生幫助....如果,下面的

文字真的
對你產生了幫助,別忘了"呱唧呱唧"(鼓掌哦)!!! <?PHP
require_once('include/common.inc.php');//這裡是個接口common.inc.PHP裡面包函了一些常
                                       //用到的函數類庫以及SMARTY
include_once('header.PHP');//調用頭部信息,SESSION的信息全都保存在這裡,這樣做的好處是
                           //幾乎所有的頁面都不需要在開頭輸入session_start();
$smarty = new Smarty_Calvin;//調用這個對象
$smarty->caching = false;//不使用緩存
$swe = "SET NAMES gb2312;";//如果是使用MySQL5的數據庫的話,這樣做是非常必要的。要不然
                           //極易出現亂碼
MySQL_query($swe);
//下面是數據庫的關聯查找,將得到數據庫中的記錄
$sqle = "SELECT calvin.did,calvin.title,calvin.voidbulk,calvin.databulk,
calvin.place,calvin.price,calvin.line,calvin.explan,
calvin.identify,
idcof_extend.identify,idcof_extend.pid,idcof_extend.pid,idcof_extend.start,
idcof_extend.end,idcof_extend.taxis
FROM calvin,extend
WHERE calvin.identify = idcof_extend.identify
AND calvin.did = extend.pid
ORDER BY extend.taxis DESC"; 
$resulte = mysql_query($sqle) or dIE(MySQL_error());
$IE= MySQL_num_rows($resulte);//得到結果集的數量
//把結果集存到SMARTY可以用的數組中
while(($rowe=MySQL_fetch_array($resulte)) && $IE > 0)
{
$arraye[] = array("dide"=>$rowe["did"],
                  "titlee"=>$rowe["title"],
                  "voidbulke"=>$rowe['voidbulk'],
                  "databulke"=>$rowe['databulk'],
"placee"=>$rowe['place'],
"linee"=>$rowe['line'],
"pricee"=>$rowe["price"],
"explane"=>cutstr($rowe["explan"],180)
                  );//cutstr這個函數是自定義的,從COMMON。INC。PHP而來
$IE--;
}
$smarty->assign('arraye',$arraye);//把數組指向模板
//下面的部分是本教程的重點。
// get_template_vars返回一個指定的已賦值的模板變量的值
$smartyArr = $smarty->get_template_vars();
//print_R($smartyArr);
//記錄總數,每頁顯示記錄條數,總頁數
$pager_Total = count($smartyArr);//總記錄數
//echo $pager_Total;
$pager_Size = 10;//設定每頁顯示的記錄數
$pager_Number = ceil($pager_Total/$pager_Size);//得到總頁數,如果有小時就進一步取整
$pager_URL = "dummyhost.PHP?action=VIEw";

//獲得當前頁的頁數,從REQUEST獲得
if(isset($_GET['pager_PageID'])&& !empty($_GET['pager_PageID'])){
$pager_PageID = intval($_GET['pager_PageID']);
}else{
//如果是第一次訪問,則設定當前頁為第一頁
$pager_PageID = 1;

//每頁的起,始記錄數
//如果當前頁是第一頁,則記錄是從第0條記錄開始的
if ($pager_PageID == 1 ) {
$pager_StartNum = 0;
//如果當前頁不是第一頁,則記錄是從當前的頁數減去1乘以每頁的顯示記錄數開始的 
} else {
$pager_StartNum = ($pager_PageID -1) * $pager_Size;

//當前頁的結束記錄數是起始記錄數加上每頁的顯示記錄數
$pager_EndNum = $pager_StartNum + $pager_Size;
//如果當前頁是第一頁,且總頁數大於1
if ($pager_PageID == 1 && $pager_Number>1) {
//第一頁
$pager_Links = "上一頁 |";
//否則如果當前頁是最後一頁,且總頁數大於1 
} elseif($pager_PageID == $pager_Number && $pager_Number>1) {
//最後一頁
$pager_Links = "上一頁 |";
//否則如果當前頁不是第一頁,且當前頁小於等於最後一頁 
} elseif ($pager_PageID > 1 && $pager_PageID <= $pager_Number) {
//中間
$pager_Links = "上一頁 |";
//否則
} else {
$pager_Links = "上一頁 |";
}

$smarty->assign('search','dummyhost_search.PHP'); 
include_once('dummyhost_ad.PHP');

$smarty->assign('pager_Total',$pager_Total); 
$smarty->assign('pager_StartNum',$pager_StartNum);
$smarty->assign('pager_EndNum',$pager_EndNum);
$smarty->assign('pager_Links',$pager_Links);
$smarty->display("dummyhost.tpl"); 
include_once('footer.PHP'); 
?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved