PHP實現資料庫資料的分頁
阿新 • • 發佈:2018-12-06
一、實現思路:
1. 使用bootstrap框架,實現資料庫的連線,以及sql指令的執行;
2.寫html中的table程式碼,用bootstrap中的表格樣式進行修飾;
3.在分頁的連結上新增引數;
4.獲得當前的頁號;
5.控制翻頁(向上不得超過第一頁,向下不得超過最後一頁);
6.獲得總頁數;
7.求得總頁數;
8.求得每一頁開始的第一條資料的索引號;
二、舉個例子吧:連線本地myschool資料庫
<?php header("content-type:text/html;charset=utf-8"); //設定時間為北京時間 date_default_timezone_set('PRC'); //預定義變數$_GET,該陣列儲存的是以get方式儲存的資料 const PAGE_SIZE = 2;//每頁多少條記錄 $page = 1;//預設為第一頁 if(isset($_GET['page'])){ $page = $_GET['page']; } //連線資料庫 $conn = @new mysqli("localhost",'root','','mysclool'); //檢測資料庫是否連線成功 if($conn -> connect_error){ die("資料庫連線失敗"); } //設定編碼格式 $conn -> set_charset('utf8'); //獲取資料庫中的表有多少行 $sql = "select count(*) from user"; //執行sql語句 $res = $conn -> query($sql); //判斷能寫幾頁 $length = $res ->fetch_row(); $count = $length[0]; $len = ceil($count/PAGE_SIZE); //每次從第幾個索引開始 $index = ($page-1)*PAGE_SIZE; //建立sql指令 實現每頁返回特定的資料量 $sql = "select id,user,create_time from user limit $index,".PAGE_SIZE; //執行sql指令 $res = $conn -> query($sql); // print_r($res); // exit; //檢測sql指令是否正確 if($res === false){ die("執行sql指令出錯"); } //獲取結果集 $arr = []; while($row = $res -> fetch_assoc()){ $arr[] = $row; } //釋放結果集 $res -> free(); //關閉資料庫 $conn-> close(); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" type="text/css" href="bootstrap-3.3.7-dist\css\bootstrap.min.css"> <script type="text/javascript" src="jquery-3.3.1.min.js"></script> <script type="text/javascript" src="bootstrap-3.3.7-dist\js\bootstrap.min.js"></script> </head> <body> <div class="container"> <div class="panel panel-primary"> <div class="panel panel-heading">使用者資訊表</div> <table class="table table-bordered table-striped table-hover"> <tr> <td>使用者名稱</td> <td width="200">建立日期</td> </tr> //使用foreach迴圈向表格中新增資料 <?php foreach ($arr as $row) { ?> <tr> <td><?php echo $row['user'] ?></td> <td><?php echo date('Y-m-d H:i:s',$row['create_time']) ?></td> </tr> <?php } ?> </table> <nav aria-label="..."> <ul class="pager"> <?php if($page-1 >0){ ?> <li><a href="<?php echo $_SERVER['PHP_SELF'] ?>?page=<?php echo $page-1 ?>">上一頁</a></li> <?php } ?> <?php if($page+1 <=$len){ ?> <li><a href="<?php echo $_SERVER['PHP_SELF'] ?>?page=<?php echo $page+1 ?>">下一頁</a></li> <?php } ?> </ul> </nav> </div> </div> </body> </html>
注意:1.邏輯思維能力要好,清楚下一步該做什麼;
2.$_GET、$_SERVER的使用;
3.要關閉資料庫連線,以及釋放結果集;