PHP入門(16) 使用mysqli實現簡單的分頁

來源:互聯網
上載者:User

標籤: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 頁&nbsp;</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實現簡單的分頁

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.