1. 程式人生 > 其它 >php 原生分頁

php 原生分頁

<?php
// 連線資料庫
$link = mysqli_connect("127.0.0.1", "root", "root", "1909A");
// 分頁的第一步:確定每頁顯示的條數
$pageSize = 3;

// 分頁的第二步:計算總記錄數
$res = mysqli_query($link, "select count(*) as num from student");
$count = mysqli_fetch_assoc($res);
$number = $count['num'];

// 分頁的第三步:獲取當前頁
$page = $_GET['p'] ? $_GET['p'] : 1
; // 分頁的第四步:計算偏移量= (當前頁-1)*每頁顯示的條數 $pageLimit = ($page - 1) * $pageSize; // 書寫查詢語句 $sql = "select * from student limit $pageLimit,$pageSize"; // 執行SQL語句 $res = mysqli_query($link, $sql); // 將查詢後返回的物件轉換為陣列 // mysqli_fetch_all(要轉換的物件,型別:1 代表關聯陣列,2代表索引陣列) $data = mysqli_fetch_all($res, 1); // 計算頁數:ceil(總記錄數/每頁顯示的條數)
$pageNum = ceil($number / $pageSize); // 計算上一頁的頁碼=當前頁-1,但是不能小於1 $upPage = $page - 1 < 1 ? 1 : $page - 1; // 計算下一頁的頁碼=當前頁+1,但是小於總頁數 $nextPage = $page + 1 > $pageNum ? $pageNum : $page + 1; ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Bootstrap 例項 - 邊框表格</title> <link rel="
stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css"> <script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script> <script src="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script> </head> <body> <a href="add_form.php"><button type="button" class="btn btn-success">新增</button></a> <table class="table table-bordered"> <caption>1909A班學生資訊列表</caption> <thead> <tr> <th>學生編號</th> <th>學生姓名</th> <th>年齡</th> <th>性別</th> <th>手機號</th> <th>班級</th> <th>頭像</th> <th>操作</th> </tr> </thead> <tbody> <?php foreach ($data as $key => $val) { ?> <tr> <td><?php echo $val['stu_id'] ?></td> <td><?php echo $val['stu_name'] ?></td> <td><?php echo $val['stu_email'] ?></td> <td><?php echo $val['stu_sex'] ?></td> <td><?php echo $val['stu_tel'] ?></td> <td><?php echo $val['class_name'] ?></td> <td><?php echo $val['stu_photo'] ?></td> <td> <button type="button" class="btn btn-danger">刪除</button> <button type="button" class="btn btn-success">修改</button> </td> </tr> <?php } ?> </tbody> </table> <ul class="pagination"> <!-- 上一頁--> <li><a href="list.php?p=<?php echo $upPage?>">&laquo;</a></li> <!-- 數字分頁--> <?php for ($i = 1; $i <= $pageNum; $i++) { ?> <li><a href="list.php?p=<?php echo $i ?>"><?php echo $i ?></a></li> <?php } ?> <!-- 下一頁--> <li><a href="list.php?p=<?php echo $nextPage?>">&raquo;</a></li> </ul> </body> </html>
a標籤如何傳參?

a標籤傳參就是get穿參,格式:<a href='地址?引數名=引數值&&引數名=引數值....'>

總結分頁的步驟:

第一步:要確定每頁顯示幾條記錄

第二步:知道要分頁的資料總共有幾條,涉及到count()查詢

第三步:獲取當前頁,a標籤會傳遞過來,使用$_GET接收,要注意,第一次顯示列表的時候沒有頁碼,要使用?:設定預設值

第四步:計算偏移量,公式:偏移量=(當前頁-1)*每頁顯示的條數

第五步:執行SQL查詢,limit的第一個引數就是第四步計算的結果,第二個引數就是設定的要查詢的記錄數

第六步:如果是數字分頁,則需要計算總頁數,公式:總頁數=ceil(總記錄數/每頁顯示的條數)

第七步:如果是漢字分頁,需要計算上一頁、下一頁的值,公式:上一頁=當前頁-1,但是要注意:不得小於1,下一頁=當前頁+1,但是要注意:不能超過總頁數

第八步:迴圈展示資料,迴圈展示頁碼