久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

PHP + MySQL實現數據分頁顯示的示例

144次閱讀
沒有評論

共計 3319 個字符,預計需要花費 9 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

這篇文章主要介紹 PHP + MySQL 實現數據分頁顯示的示例,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

php 有什么特點

1、執行速度快。2、具有很好的開放性和可擴展性。3、PHP 支持多種主流與非主流的數據庫。4、面向對象編程:PHP 提供了類和對象。5、版本更新速度快。6、具有豐富的功能。7、可伸縮性。8、功能全面,包括圖形處理、編碼與解碼、壓縮文件處理、xml 解析等。

一、連接數據庫

$connect = mysqli_connect(localhost ,  用戶名 ,  密碼 ,  數據庫名) or die(數據庫連接失敗 mysqli_set_charset($connect,  utf8

二、構建 SQL 語句

分頁其實利用的是 MySQL 中 limit 關鍵字來實現的,例如我們查詢一個表中的前兩條數據:

select * from student limit 0, 2

limit 后需要兩個參數,第一個參數代表從第幾條開始取;第二個參數代表一次取幾條。
那么上述 SQL 語句表達的意思為從第 0 條開始取,取 2 條(實則 0 為第 1 條,計數從 0 開始)。

我們把取到的前兩條數據作為第一頁。

那么繼續取第二頁,還是 2 條數據,則 SQL 語句為:

select * from student limit 2, 2

第三頁:

select * from student limit 4, 2

以此類推,我們發現每頁始終是兩條,所以 limit 的第二個參數(即 2)已經確定好了,那么第一個參數該如何確定呢?其實其中的規律如下:

第 1 頁:0,2(第 1 頁從 0 的位置取,取 2 條,即 0 1)
第 2 頁:2,2(第 2 頁從 2 的位置取,取 2 條,即 2 3)
第 3 頁:4,2(第 3 頁從 4 的位置取,取 2 條,即 4 5)
第 4 頁:6,2(第 4 頁從 6 的位置取,取 2 條,即 6 7)
……

所以每頁的起始位置 = (當前頁 – 1) * 每頁顯示的條數

第 1 頁:(1 – 1) * 2 = 0
第 2 頁:(2 – 1) * 2 = 2
第 3 頁:(3 – 1) * 2 = 4
……

三、定義每頁顯示的條數

$pageSize = 2;

四、定義當前頁

$page = 1;

五、根據公式計算 limit 需要的第一個參數

$start = ($page - 1) * $pageSize;

所以 SQL 語句為:

select * from student limit $start, $pageSize;

這時改變 $page 的值,就可以查詢對應頁的數據。

六、通過地址欄傳參得到 $page 參數來定義當前頁

為了更加的靈活我們通過地址欄傳參得到想要顯示的頁數,所以第四步的代碼改為:

if ($_GET[ page]) {$page = $_GET[ page} else {$page = 1; //  接收不到按照  1  處理,即默認第  1  頁 }

七、通過按鈕控制上下頁切換

將 SQL 語句執行:

$sql =  select * from student limit $start, $pageSize $query = mysqli_query($connect, $sql);$result = mysqli_fetch_all($query, MYSQLI_ASSOC);

將結果輸出到 HTML 表格:

table border= 1  cellspacing= 0  cellpadding= 0   >

增加上下頁按鈕:

 button 上一頁 /button button 下一頁 /button

當點擊上一頁,我們需要給當前頁 $page - 1;
當點擊下一頁,我們需要給當前頁 $page + 1;

在當前頁的基礎上確定上一頁:

$up = $page - 1;

假設當前頁為第 2 頁,那么 $up 則為 2 - 1 = 1,即上一頁是第 1 頁。

在當前頁的基礎上確定下一頁:

$next = $page + 1;

假設當前頁為第 2 頁,那么 $next 則為 2 + 1 = 3,即下一頁是第 3 頁。

所以我們給按鈕加一個超鏈接,鏈接到當前頁,并攜帶一個 page 參數,值為相應的頁數。

a href= form-7.php?page= ?php echo $up; ? button 上一頁 /button /a a href= form-7.php?page= ?php echo $next; ? button 下一頁 /button /a

但是 $up 和 $next 并不是無限加減的,當已經是第一頁的時候,$up 不可再繼續減,所以在確定上一頁的時候需要加一個判斷。

if ($page == 1) {$up = 1;} else {$up = $page - 1;}

同理,確定下一頁的時候也需要判斷,什么時候不可以繼續下一頁了呢?當當前頁已經是最后一頁的時候不可繼續下一頁,最后一頁如何判定,取決于當前表的總條數,當前表如果有 10 條數據,每頁顯示 2 條,那么需要分 10 / 2 = 5 頁,這個 5 就是最后一頁,如果有 11 條數據,那么需要分 11 / 2 = 5.5 頁,說明分 5 頁還剩下 1 條,所以直接分 6 頁,即向上取整,那么這個 6 就是最后一頁。

求出總條數:

$sql =  select * from student $query = mysqli_query($connect, $sql);$num = mysqli_num_rows($query);

根據總條數和每頁顯示的條數求出需要分幾頁:

$totalPage = ceil($num / $pageSize);

所以在判斷下一頁的時候改為:

if ($page == $totalPage) {$next = $totalPage;} else {$next = $page + 1; }

八、完整代碼

form-7.php
 ?php//  連接數據庫 $connect = mysqli_connect(localhost ,  用戶名 ,  密碼 ,  數據庫名) or die(數據庫連接失敗 mysqli_set_charset($connect,  utf8//  查詢總條數 $sql =  select * from student $query = mysqli_query($connect, $sql);//  返回結果集中行的數量 $num = mysqli_num_rows($query);//  定義每頁顯示幾條 $pageSize = 2;//  一共分幾頁 $totalPage = ceil($num / $pageSize);//  獲取當前頁 if ($_GET[ page]) {
$page = $_GET[page} else {
$page = 1;}//  在當前頁的基礎上確定上一頁 if ($page == 1) {
$up = 1;} else {
$up = $page - 1;}//  在當前頁的基礎上確定下一頁 if ($page == $totalPage) {
$next = $totalPage;} else {
$next = $page + 1; }//  求出  limit  的第一個參數 $start = ($page - 1) * $pageSize;$sql =  select * from student limit $start, $pageSize $res = mysqli_query($connect, $sql);$result = mysqli_fetch_all($res, MYSQLI_ASSOC);? !doctype html html lang= en
  head
  meta charset= UTF-8
  meta name= Generator  content= EditPlus?
  meta name= Author  content=
  meta name= Keywords  content=
  meta name= Description  content=
  title Document /title
  /head
  body
table border= 1  cellspacing= 0  cellpadding= 0   >

以上是“PHP + MySQL 實現數據分頁顯示的示例”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注丸趣 TV 行業資訊頻道!

向 AI 問一下細節

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-04發表,共計3319字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 射阳县| 茌平县| 东乌珠穆沁旗| 博爱县| 鸡东县| 福安市| 灌阳县| 延安市| 岑溪市| 奎屯市| 游戏| 锦屏县| 五寨县| 梅州市| 卢湾区| 华坪县| 延津县| 重庆市| 白山市| 曲阜市| 台中市| 西乌珠穆沁旗| 繁昌县| 海盐县| 云浮市| 仪陇县| 措勤县| 偏关县| 砚山县| 清流县| 大丰市| 德庆县| 福建省| 安陆市| 五家渠市| 泰安市| 怀仁县| 绥阳县| 万年县| 名山县| 十堰市|