在php+mysql中要實現分頁相對很簡單,只要擷取page再X 每頁幾條記錄然後再利用limit n,M就可以完美的實現分頁了,本執行個體講述的很清楚有需要的同學參考下。
項目結構:
運行效果:
資料庫連接代碼
| 代碼如下 |
複製代碼 |
$conn = @ mysql_connect("localhost", "root", "") or die("資料庫連結錯誤"); mysql_select_db("form", $conn); mysql_query("set names 'GBK'"); //使用GBK中文編碼; //替換空格,斷行符號鍵 function htmtocode($content) { $content = str_replace("n", " ", str_replace(" ", " ", $content)); return $content; } ?> |
這裡是個比較重要的分享核心函數了
| 代碼如下 |
複製代碼 |
function _PAGEFT($totle, $displaypg = 20, $url = '') { global $page, $firstcount, $pagenav, $_SERVER; $GLOBALS["displaypg"] = $displaypg; if (!$page) $page = 1; if (!$url) { $url = $_SERVER["REQUEST_URI"]; } //URL分析: $parse_url = parse_url($url); $url_query = $parse_url["query"]; //單獨取出URL的查詢字串 if ($url_query) { $url_query = ereg_replace("(^|&)page=$page", "", $url_query); $url = str_replace($parse_url["query"], $url_query, $url); if ($url_query) $url .= "&page"; else $url .= "page"; } else { $url .= "?page"; } $lastpg = ceil($totle / $displaypg); //最後頁,也是總頁數 $page = min($lastpg, $page); $prepg = $page -1; //上一頁 $nextpg = ($page == $lastpg ? 0 : $page +1); //下一頁 $firstcount = ($page -1) * $displaypg; //開始分頁導航條代碼: $pagenav = "顯示第 " . ($totle ? ($firstcount +1) : 0) . "-" . min($firstcount + $displaypg, $totle) . " 條記錄,共 $totle 條記錄"; //如果只有一頁則跳出函數: if ($lastpg <= 1) return false; $pagenav .= " 首頁 "; if ($prepg) $pagenav .= " 前頁 "; else $pagenav .= " 前頁 "; if ($nextpg) $pagenav .= " 後頁 "; else $pagenav .= " 後頁 "; $pagenav .= " 尾頁 "; //下拉捷徑清單,迴圈列出所有頁碼: $pagenav .= " 到第 n"; for ($i = 1; $i <= $lastpg; $i++) { if ($i == $page) $pagenav .= "$in"; else $pagenav .= "$in"; } $pagenav .= " 頁,共 $lastpg 頁"; } include("conn.php"); $result=mysql_query("SELECT * FROM `test`"); $total=mysql_num_rows($result); //調用pageft(),每頁顯示10條資訊(使用預設的20時,可以省略此參數),使用本頁URL(預設,所以省略掉)。 _PAGEFT($total,5); echo $pagenav; $result=mysql_query("SELECT * FROM `test` limit $firstcount,$displaypg "); while($row=mysql_fetch_array($result)){ echo "".$row[name]." | ".$row[sex]; } ?>
|
list.php
資料庫查詢記錄並產生sql查詢語句
| 代碼如下 |
複製代碼 |
include("conn.php"); $pagesize=5; 5 $url=$_SERVER["REQUEST_URI"]; $url=parse_url($url); $url=$url[path]; $numq=mysql_query("SELECT * FROM `test`"); $num = mysql_num_rows($numq); if($_GET[page]){ $pageval=$_GET[page]; $page=($pageval-1)*$pagesize; $page.=','; } if($num > $pagesize){ if($pageval<=1)$pageval=1; echo "共 $num 條". 21 " 上一頁 下一頁"; } $SQL="SELECT * FROM `test` limit $page $pagesize "; $query=mysql_query($SQL); while($row=mysql_fetch_array($query)){ echo "".$row[name]." | ".$row[sex]; } ?> |
分頁公式:(當前頁數-1)*每頁條數,每頁條數
| 代碼如下 |
複製代碼 |
| sql語句:select * from test_table limit ($page-1)*$pageSize,$pageSize; |
總結:
不管是在什麼程式開發中分開都是一個原是從X條開始取N條,這樣就唯讀幾條了,而在mysql中有limit函數來操作,如 limit 1,5 就是從第一條取5條了。
再來介紹下核心代碼,這裡擷取分頁碼,再Xpagesize代碼如下
| 代碼如下 |
複製代碼 |
if($_GET[page]){ $pageval=$_GET[page]; $page=($pageval-1)*$pagesize; $page.=','; } if($num > $pagesize){ if($pageval<=1)$pageval=1; |
在mysql+php做分成相對要簡單很多了,因為有了limit
http://www.bkjia.com/PHPjc/631629.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/631629.htmlTechArticle在php+mysql中要實現分頁相對很簡單,只要擷取page再X 每頁幾條記錄然後再利用limit n,M就可以完美的實現分頁了,本執行個體講述的很清楚有需要...