標籤:php入門 web開發
前幾天正好學習了如何使用PHP內建的api操作MySQL資料庫,正好拿一下分頁這個小案例練一下手。
關於分頁的演算法有很多,這裡僅僅介紹很簡單的一種。
分頁的原理:
首先獲得總共含有多少行$row_num,總行數除以每頁的行數$page_size,向上取整得到總共有多少頁$page_num。
容易得到第page頁的第一條記錄是整張表的第($page-1)*page_size條記錄,記為$offset
(注意:行索引是從0開始的)
然後應用mysql的limit關鍵字 擷取每一頁的記錄結果顯示出來即可。
select * from test limit offset, page_size;
具體實現代碼:兩個檔案conn.php indes.php
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/88/44/wKiom1fs0TigiqMMAAASVZgoU3g654.jpg-wh_500x0-wm_3-wmp_4-s_1641262107.jpg" title="1.jpg" alt="wKiom1fs0TigiqMMAAASVZgoU3g654.jpg-wh_50" />
/*conn.php*/<?php$mysqli = new mysqli("localhost","root","123456","mydb") or die("資料庫連接失敗!".$mysqli->errno);
/*index.php*/<?phpinclude_once("conn/conn.php");$page = $_GET["page"];if($page == ""){ $page = 1;}if(is_numeric($page)) { $page_size = 4; $res = $mysqli->query("select * from test"); $row_count = $res->num_rows; $page_num = ceil($row_count / $page_size); $offset = ($page - 1) * $page_size; $res = $mysqli->query("select * from test limit $offset,$page_size"); while ($row = $res->fetch_assoc()) { echo "<table><tr>"; echo "<td>".$row["id"]."</td>"; echo "</table>"; }}echo "總共有".$page_num."頁記錄";echo "<br>";if($page != 1) { echo "<a href=index.php?page=1>首頁</a>";//index.php的路徑不加引號也可以 echo "<a href=index.php?page=".($page - 1).">上一頁</a>";//如果運算式不是直接的變數,必須計算出來之後使用.串連}for($i=1;$i<=$page_num;$i++){ echo "<a href=index.php?page=".$i.">第$i 頁 </a>";}if($page < $page_num) { echo "<a href=index.php?page=".($page + 1).">下一頁</a>"; echo "<a href=index.php?page=$page_num>尾頁</a>";}
本文出自 “厚積薄發” 部落格,請務必保留此出處http://joedlut.blog.51cto.com/6570198/1857808
PHP入門(16) 使用mysqli實現簡單的分頁