首頁  >  文章  >  後端開發  >  smarty分頁的例子

smarty分頁的例子

WBOY
WBOY原創
2016-07-25 09:10:301340瀏覽
  1. @session_start();
  2. require_once("smarty.php");//載入smarty模板類別
  3. require_once("adodb/adodb.inc.php");//載入adodb資料庫
  4. //連線資料庫

  5. $dbhost = 'localhost'; // 資料庫伺服器
  6. $dbuser = 'root'; // 資料庫使用者名稱
  7. $dbpwd= 'root'; // 資料庫密碼
  8. $dbname='hejia'; //資料庫名稱
  9. $conn = NewAdoConnection('mysql'); // 建立連線物件

  10. $conn->Connect($dbhost, $dbuser, $dbpwd, $dbname); //連接資料庫
  11. $conn->Query ("Set Names 'gb2312'");//源自mysql_query("SET NAMES GBK");
  12. date_default_timezone_set(PRC); //PHP取得時間差8小時的解決方案,也可在php.ini裡修改date.timezone為PRC
  13. ?>
複製程式碼

首頁index.php:

  1. require_once("const.php");
  2. $sql1="select id,hits, title,add_date from oa_art order by id desc"; //SQL語句
  3. $pageSize=4; //設定每頁記錄數
  4. $sql=$sql1." limit ".($pageSize * ((empty ($_REQUEST['page']) ? 1 : $_REQUEST['page'])-1)).", ".$pageSize;
  5. $news_array=$conn->getall($sql);
  6. $news_array1=$conn->getall($sql1);
  7. $page_url="index.php"; //頁面url位址
  8. $totalnumber=count($news_array1); //取得總記錄數
  9. $midPage=5; //數位導覽連結數
  10. page();// 呼叫分頁函數
  11. for ($i = 0; $i $smarty->assign("page_option",$page_option);

  12. $smarty->assign("news_data",$news_array);

  13. $smarty->assign("mytitle","企業網站首頁");
  14. $smarty->display("tpl.htm",$ page);
  15. ?>
複製程式碼

分頁函數:

  1. function page()

  2. {
  3. global $spagey,$start ,$pageSize,$midPage,$totalnumber;
  4. $total = $totalnumber ; //取得總記錄數
  5. $totalPage = ceil($total/$pageSize); //取得總頁數
  6. $
  7. $
  8. $ if(!is_numeric($currentPage) || $currentPage $totalPage)
  9. $currentPage=1; //初始化當前頁
  10. $url = preg_replace(array("!(([&]|^)(page)[=]?([^&]+)?)|( (([&]){2,})|(^[&])|([&]$))!",),array(""),$_SERVER["QUERY_STRING"]); // 設定位址,正規替換掉
  11. $url.=($url?"&":"").'page'; // 追加
  12. $start = ($currentPage-1)*$pageSize;
  13. $ back = $currentPage > 1?"n ":"";
  14. $next = $currentPage > >n":"";
  15. $first = $currentPage > 1?"首頁n":"";
  16. $last = $currentPage 尾頁n":" ";
  17. // 導覽連結

  18. $midPages = '';
  19. $num = $currentPage-floor($midPage/2);
  20. if($num > 0)
  21. {
  22. if(($totalPage-$num) {
  23. $tmp = $totalPage - $midPage;
  24. $num = $tmp }
  25. }else $num = 1;
  26. for($i=1; $i {
  27. if($num > $totalPage) break;
  28. $midPages .= ($num == $currentPage) ? '['.$num.'] ' : "".$num." ";
  29. }
  30. $smarty->assign("page_total",$total); / / 總計
  31. $smarty->assign("page_currentPage",$currentPage); // 當前頁碼
  32. $smarty->assign("page_totalPage",$totalPage); // 總頁數
  33. $smarty ->assign("page_back",$back); // 上一頁
  34. $smarty->assign("page_next",$next); // 下一頁
  35. $smarty->assign("page_first ",$first); // 首頁
  36. $smarty->assign("page_last",$last); // 尾頁
  37. $smarty->assign("page_midPages",$midPages); // 中間頁
  38. $smarty->assign("page_url",$page_url); // 目前頁位址
  39. }
?>
複製程式碼

範本頁 tpl.htm:

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn