環境:win10 64 ,mysql,phpphp
目的:經過查詢數據庫test2裏面的表user_list,製做一個相似百度分頁的顯示錶。css
原來數據庫test2裏面的表user_list裏面的數據以下:
最終的效果圖以下:
html
思路:先把前端頁面作出來,後填充數據。前端
流程:mysql
分頁核心:利用mysql裏面sql語句:select * from user_list limit 起始行,頁碼。web
注意:sql
代碼以下:數據庫
<?php // 鏈接mysql @$link = mysqli_connect('localhost','root','123456'); if(!$link) { echo 'mysql鏈接失敗<br>'; echo ''.mysqli_connect_error(); die(); } // 當前數據庫爲test2 $db = 'test2'; // 進入當前數據庫test2 mysqli_select_db($link,$db); // 設置字符編碼爲utf8 mysqli_set_charset($link,'utf8'); // 該頁碼能夠取正整數,不小於數據庫該表user_list的總條數29 $pagesize = 2; // 判斷當前頁,剛加載的時候,默認頁碼爲1,之後的頁碼則從點擊獲取。 if(isset($_GET['page'])) { $page = $_GET['page']; } else { $page = 1; } $start_row = ($page - 1)*$pagesize; $sql1 = "SELECT * FROM user_list"; $result = mysqli_query($link,$sql1); // 獲取總記錄數,即數據總條數 $records = mysqli_num_rows($result); // 獲取總頁數。ceil函數向上取最小整數。 $pages = ceil($records/$pagesize); // 獲取當前頁的分頁數據 $sql2 = "SELECT * FROM user_list limit $start_row,$pagesize"; $result2 = mysqli_query($link,$sql2); $arrs = mysqli_fetch_all($result2,MYSQLI_ASSOC); ?> <!DOCTYPE html> <html> <head> <title>學生表信息</title> <style type="text/css"> .a1 { display:inline-block; text-decoration:none; border:1px solid gray; padding:0px 5px; margin:0px 2px; text-align:center; } .a1:link{ color:blue; } .a1:visited{ color:blue; } .a1:hover{ border:1px solid blue; background-color:gray; } th,td { height:40px; text-align:center; } </style> </head> <body> <h3>學生表信息</h3> <table border='1' width='600'> <tr> <th>id</tdh> <th>name</th> <th>age</th> <th>sex</th> </tr> <?php foreach($arrs as $values) {?> <tr> <td><?php echo $values['id'] ?></td> <td><?php echo $values['name'] ?></td> <td><?php echo $values['age'] ?></td> <td><?php echo $values['sex'] ?></td> </tr> <?php } ?> <tr> <td colspan='4' align='center'> <?php // 當總頁數大於10時,當前頁的顯示方法和百度分頁同樣。當前頁和前面有5頁,後面有4頁,經過加條件,防止出現負數或數據不存在。 $start_page = $page - 5; $end_page = $page + 4; if($page<=6) { $start_page=1; $end_page=10; } if($page>=$pages-4) { $start_page=$pages-9; $end_page=$pages; } // 總頁數小於10時,按下面處理 if($pages<10) { $start_page=1; $end_page=$pages; } // 上一頁的處理 $pre_page = $page-1; if($pre_page<=1) { $pre_page=1; } // 下一頁的處理 $next_page = $page+1; if($next_page>=$pages) { $next_page=$pages; } ?> <a href="?page= <?php echo $pre_page; ?>" class='a1'>上一頁</a> <?php // 輸出頁碼 for($count = $start_page;$count<=$end_page;$count++) { if($page==$count) { ?> <!-- 設置當前頁的頁碼時,沒有樣式 --> <span><?php echo $count; ?></span> <?php continue; } ?> <!-- 設置不是當前頁的頁碼 --> <a href="?page= <?php echo $count; ?>" class='a1'> <?php echo $count; ?> </a> <?php } ?> <a href="?page= <?php echo $next_page; ?>" class='a1'>下一頁</a> </td> </tr> </table> </body> </html>