搜尋
首頁php教程php手册轉載:分頁原理+分頁代碼+分頁類製作

 分頁顯示是一種非常常見的瀏覽和顯示大量資料的方法,屬於web程式設計中最常處理的事件之一。對於web程式設計的老手來說,編寫這種程式碼實在是和呼吸一樣自然,但是對於初學者來說,常常對這個問題摸不著頭緒,因此特地撰寫此文對這個問題進行詳細的講解。

一、分頁原理:
       所謂分頁顯示,也就是將資料庫中的結果集人為的分成部分的 ($PageSize)?
       目前是第幾頁($CurrentPageID)?

       現在只要再給我一個結果集,我就可以顯示某段特定的結果出來。

       至於其他的參數,例如:上一頁($PReviousPageID)、下一頁($NextPageID)、總頁數($numPages)等等,都可以根據前邊這幾個東西得到。

       以MySQL資料庫為例,若要從表內截取某段內容,sql語句可以用:select * from table limit offset, rows。看看下面一組sql語句,試著發現其中的規率。

       前10筆記錄:select * from table limit 0,10
       第11至20筆記錄:select * from table limit 10,100 511至20筆記錄:select * 
        這一組sql語句其實就是當$PageSize=10的時候取表內每一頁資料的sql語句,我們可以總結出這樣一個範本:
        select * from table limit ($.PizePage) -IDPage ($PizePage), $ID $PageSize
        拿這個模板代入對應的值和上邊那一組sql語句對照一下看看是不是那麼一回事。搞定了最重要的如何取得資料的問題以後,剩下的就只是傳遞參數,建構合適的sql語句然後使用php從資料庫內取得資料並顯示了。




二、
分頁代碼說明:五個步驟
       代碼中有充分解釋,可複製到自己記事本中直接使用

  1. 員工資訊清單
  2.         //顯示所有emp表的資訊
  3.         //1.連接資料庫
  4.         $conn=mysql_connect('localhost','root','1234abcd') or die('連線資料庫錯誤'.mysql_error());
  5.         //2.選擇資料庫
  6.         mysql_select_db('empManage');
  7.         //3.選擇字元集
  8.         mysql_query('set names utf8');
  9.         //4.傳送sql語句並且得到結果處理
  10.         //4.1分頁[分頁要發出兩個sql語句,一個是得到$rowCount,一個是透過sql的limit得到分頁結果。所以我們會得到兩個結果集,在命名的時候要記得區分。
  11. 分頁  (四個數值 兩個sql語句)。 ]
  12.         $pageSize=3;//每頁顯示多少筆記錄
  13.         $rowCount=0;//共有數筆記錄
  14.         $pageNow=1;//希望顯示第幾頁
  15.         $pageCount=0;//總共有多少頁  [分頁共有此四個指標,缺一不可。由於$rowCount可以從伺服器獲得的,所以可以給予初始值為0;
  16. $pageNow希望顯示第幾頁,這裡最好是設定為0;$pageSize是每頁顯示多少筆記錄,這裡根據網站需求提前製定。
  17. $pageCount=ceil($rowCount/$pageSize),既然$rowCount可以初始值為0,那麼$pageCount當然也就可以設定為0.四個指標,兩個0 ,一個1,另一個為網站需求。 ]
  18.                 //4.15依據分頁連結來修改$pageNow的數值
  19.                 if(!empty($_GET['pageNow'])){
  20.                         $pageNow=$_GET['pageNow'];
  21.                 }[依據分頁連結修改$pageNow的數值。 ]
  22.         $sql='select count(id) from emp';
  23.         $res1=mysql_query($sql);
  24.         //4.11取出行數
  25.         if($row=mysql_fetch_row($res1)){
  26.                 $rowCount=$row[0];                
  27.         }//[取得$rowCount,,進了我們就知道了$pageCount兩個指標了。 ]
  28.         //4.12計算共有多少頁
  29.         $pageCount=ceil($rowCount/$pageSize);
  30.         $pageStart=($pageNow-1)*$pageSize;
  31.         
  32.         //4.13寄送有分頁的sql結果
  33.         $sql="select * from emp limit $pageStart,$pageSize";//[根據$sql語句的limit 後面的兩個值(起始值,每頁條數),來實現分頁。以及求得這兩個值。】
  34.         $res2=mysql_query($sql,$conn) or die('無法取得結果集'.mysql_error());
  35.         echo '';[        echo ";
  36. " id 姓名 年級 電子郵件 薪水> ;刪除使用者 修改使用者 ";        while($row=mysql_fetch_assoc ($res2)){
  37.                 echo " {$row['id']} {$row['name']} {$row ['成績']} {$row['電子郵件']} {$row['工資']} 刪除使用者 使用者";        }
  38.         回顯「」;
  39.         //4.14印出頁碼的超連結
  40.         for($i=1;$i                 echo "$i ";//[印出頁碼的超連結]
  41.         
  42.         }
  43.         //5.釋放資源,關閉連線
  44.         mysql_free_result($res2);
  45.         mysql_close($conn);
  46. ? >

  47. 三、簡單類別分享
             現已發表一個簡單的分類製作。簡單理解了這類的分頁原理和步驟,其他複雜的類別能夠觸及類旁通了。不廢話,直接上原始碼,可以直接使用在你的專案中。

            資料庫操作程式碼:mysqli.func.php
          

      // 資料庫連線常數  
    1. define('DB_HOST', 'localhost');  
    2. define('DB_USER', 'root');  
    3. define('DB_PWD', '');  
    4. define('DB_NAME', 'guest');  
    5.   
    6. // 連結資料庫
    7. 函數 conn()  
    8. {  
    9.     $conn = mysqli_connect(DB_HOST, DB_USER, DB_PWD, DB_NAME);  
    10.     mysqli_query($conn, "設定名稱 utf8");  
    11.    返回$conn;  
    12. }  
    13.   
    14. //取得結果集  
    15. 函數 doresult($sql){  
    16.    $result=mysqli_query(conn(), $sql);  
    17.   回$結果;  
    18. }  
    19.   
    20. //結果集轉為物件集合  
    21. 函數 dolists($結果){  
    22.     return mysqli_fetch_array($result, MYSQL_ASSOC);  
    23. }  
    24.   
    25. 函數totalnums($sql) {  
    26.     $result=mysqli_query(conn(), $sql);  
    27.     return $result->num_rows;  
    28. }  
    29.   
    30. // 關閉資料庫  
    31. 函數 closeb()  
    32. {  
    33.     if (!mysqli_close()) {  
    34.         exit('關閉異常');  
    35.     }  
    36. }  
    37.   
    38. ? >   


    分頁實現代碼:


    1. include 'mysqli.func.php';  
    2.   
    3. // 總紀錄數  
    4. $sql = "SELECT dg_id  FROM  tb_user ";  
    5. $totalnums = totalnums($sql);  
    6.   
    7. // 每頁顯示條數  
    8. $fnum = 8;  
    9.   
    10. // 翻頁數  
    11. $pagenum = ceil($totalnums / $fnum);  
    12.   
    13. // 頁數常數  
    14. @$tmp = $_GET['page'];  
    15.   
    16. //防止惡意翻頁  
    17. if ($tmp > $pagenum)  
    18.     echo "<script>window.location.href='index.php'</script>";  
    19.   
    20. //計算分頁起始值  
    21. if ($tmp == "") {  
    22.     $num = 0;  
    23. } else {  
    24.     $num = ($tmp - 1) * $fnum;  
    25. }  
    26.   
    27. // 查詢語句  
    28. $sql = "SELECT dg_id,dg_username  FROM  tb_user ORDER BY dg_id DESC LIMIT " . $num . ",$fnum";  
    29. $result = doresult($sql);  
    30.   
    31. // 遍歷輸出  
    32. while (! ! $rows = dolists($result)) {  
    33.     echo $rows['dg_id'] . " " . $rows['dg_username'] . "
      ";  
    34. }  
    35.   
    36. // 翻頁連結  
    37. for ($i = 0; $i
    38.     echo "" . ($i + 1) . "";  
    39. }  
    40. ?>  

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中