目錄
ShowData
首頁 php教程 php手册 PHP 分页代码与分页原理解析

PHP 分页代码与分页原理解析

May 25, 2016 pm 04:55 PM
select 分頁

本文章来给各位php入门者提供在php与mysql实现分页代码与原理,在mysql中支持limit 0,1这样就是查询0,1条记录了,有了它在php中分页就简单快速多了。

所谓分页显示,也就是将数据库中的结果集人为的分成一段一段的来显示,这里需要两个初始的参数:
每页多少条记录($PageSize)?
当前是第几页($CurrentPageID)?
现在只要再给我一个结果集,我就可以显示某段特定的结果出来。
至于其他的参数,比如:上一页($PreviousPageID)、下一页($NextPageID)、总页数($numPages)等等,都可以根据前边这几个东西得到。
以MySQL数据库为例,如果要从表内截取某段内容,sql语句可以用:select * from table limit offset, rows。看看下面一组sql语句,尝试一下发现其中的规率。

 代码如下 复制代码
select * from table limit 0,10 // 前10条记录
select * from table limit 10,10 // 第11至20条记录
select * from table limit 20,10 // 第21至30条记录

……

这一组sql语句其实就是当$PageSize=10的时候取表内每一页数据的sql语句,我们可以总结出这样一个模板:

 代码如下 复制代码

select * from table limit ($CurrentPageID - 1) * $PageSize, $PageSize

拿这个模板代入对应的值和上边那一组sql语句对照一下看看是不是那么回事。搞定了最重要的如何获取数据的问题以后,剩下的就仅仅是传递参数,构造合适的sql语句然后使用php从数据库内获取数据并显示了。以下我将用具体代码加以说明。

 代码如下 复制代码



<br>ShowData<br>


ShowData


    //连接数据库   
    $page = 1;
        $db = mysql_connect('127.0.0.1','root','toor');
        mysql_select_db('test',$db);
   
        $pagesize = 3;    //每页显示到数量
   
    //计算一共有多少记录,用于计算页数
    $rs = mysql_query("select count(*) from info",$db);
    $row = @mysql_fetch_array($rs);
    $numrows = $row[0];

    //计算页数
    $pages = intval($numrows / $pagesize);
    if ($numrows % $pagesize)
    {
        $pages++;
    }

    //设置页数
    if (isset($_GET['page']))
    {   
        $page = intval($_GET['page']);
    }
    else
    {
        $page = 1;        //其他情况,都指向第一页
    }
   
    //计算记录的偏移量
    $offset = $pagesize * ($page - 1);

    //读取指定记录
    $rs = mysql_query("select * from info order by id limit $offset,$pagesize",$db);

    //把数据用表格显示出来
    if ($row = @mysql_fetch_array($rs))
    {
        $i = 0;
        ?>
       


       
       
       
       
                    do{
                $i++;
        ?>
       
       
       
       
                    }
            //循环显示数据
            while ($row = mysql_fetch_array($rs));
            echo "

       

ID


       

DOC

=$row['id']?> =$row['doc']?>
";
    }
    echo "
共".$pages."页(".$page."/".$pages.")";
    for ($i = 1;$i     {
        echo "[".$i."]";
    }
    echo "[".$page."]";
    for ($i = $page + 1;$i     {
        echo "[".$i."]";
    }
    echo "
";

    ?>


总结,分页就根据用户点击连接,然后由于php获取page值再经过一系列算法得出当前多少页面,然后取多少要就显示出你要查看的记录了。



本文地址:

转载随意,但请附上文章地址:-)

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP開發:如何實作表格資料排序與分頁功能 PHP開發:如何實作表格資料排序與分頁功能 Sep 20, 2023 am 11:28 AM

PHP開發:如何實現表格資料排序和分頁功能在進行Web開發中,處理大量資料是一項常見的任務。對於需要展示大量資料的表格,通常需要實現資料排序和分頁功能,以提供良好的使用者體驗和最佳化系統效能。本文將介紹如何使用PHP實作表格資料的排序和分頁功能,並給出具體的程式碼範例。排序功能實作在表格中實作排序功能,可以讓使用者根據不同的欄位進行升序或降序排序。以下是一個實作表格

如何在CakePHP中建立自訂分頁? 如何在CakePHP中建立自訂分頁? Jun 04, 2023 am 08:32 AM

CakePHP是一個強大的PHP框架,為開發人員提供了許多有用的工具和功能。其中之一是分頁,它可以幫助我們將大量資料分成幾頁,從而簡化瀏覽和操作。預設情況下,CakePHP提供了一些基本的分頁方法,但有時你可能需要建立一些自訂的分頁方法。這篇文章將向您展示如何在CakePHP中建立自訂分頁。步驟1:建立自訂分頁類別首先,我們需要建立一個自訂分頁類別。這個

使用JavaScript實作表格資料的分頁顯示 使用JavaScript實作表格資料的分頁顯示 Jun 16, 2023 am 10:00 AM

隨著數據的不斷增長,表格顯示變得更加困難。大多數情況下,表格中的資料量過大,導致表格在載入時變得緩慢,而且使用者需要不斷地瀏覽頁面才能找到自己想要的資料。本文將介紹如何使用JavaScript實作表格資料的分頁顯示,讓使用者更容易找到自己想要的資料。一、動態建立表格為了讓分頁功能更可控,需要動態建立表格。在HTML頁面中,新增一個類似下面的table元素。

如何使用 JavaScript 實作表格分頁功能? 如何使用 JavaScript 實作表格分頁功能? Oct 20, 2023 pm 06:19 PM

如何使用JavaScript實作表格分頁功能?隨著網路的發展,越來越多的網站都會使用表格來展示數據。在某些資料量較大的情況下,需要將資料進行分頁展示,以提升使用者體驗。本文將介紹如何使用JavaScript實作表格分頁功能,並提供具體的程式碼範例。一、HTML結構首先,我們需要準備一個HTML結構來承載表格和分頁按鈕。我們可以使用&lt;tab

MyBatis分頁插件原理詳解 MyBatis分頁插件原理詳解 Feb 22, 2024 pm 03:42 PM

MyBatis是一個優秀的持久層框架,它支援基於XML和註解的方式操作資料庫,簡單易用,同時也提供了豐富的插件機制。其中,分頁插件是使用頻率較高的插件之一。本文將深入探討MyBatis分頁外掛的原理,並結合具體的程式碼範例進行說明。一、分頁外掛原理MyBatis本身並沒有提供原生的分頁功能,但可以藉助外掛程式來實現分頁查詢。分頁插件的原理主要是透過攔截MyBatis

jquery如何隱藏select元素 jquery如何隱藏select元素 Aug 15, 2023 pm 01:56 PM

jquery隱藏select元素的方法:1、hide()方法,在HTML頁面中引入jQuery庫,可以使用不同選擇器來隱藏select元素,ID選擇器將selectId替換為你實際使用的select元素的ID;2、 css()方法,使用ID選擇器選擇需要隱藏的select元素,使用css()方法將display屬性設為none,並將selectId替換為select元素的ID。

如何利用Layui開發一個具有分頁功能的資料展示頁面 如何利用Layui開發一個具有分頁功能的資料展示頁面 Oct 24, 2023 pm 01:10 PM

如何利用Layui開發一個具有分頁功能的資料展示頁面Layui是一個輕量級的前端UI框架,提供了簡潔美觀的介面元件和豐富的互動體驗。在開發中,我們經常會遇到需要展示大量資料並進行分頁的情況。以下是利用Layui開發的具有分頁功能的資料展示頁面的範例。首先,我們需要引入Layui的相關文件和依賴。在html頁面的&lt;head&gt;標籤中加入以下代

使用golang進行Select Channels Go並發式程式設計的非同步處理方法 使用golang進行Select Channels Go並發式程式設計的非同步處理方法 Sep 28, 2023 pm 05:27 PM

使用golang進行SelectChannelsGo並發式程式設計的非同步處理方法引言:並發式程式設計是現代軟體開發中的重要領域,它可以有效地提高應用程式的效能和回應能力。在Go語言中,使用Channels和Select語句可以簡單而有效率地實現並發程式設計。本文將介紹如何使用golang進行SelectChannelsGo並發式程式設計的非同步處理方法,並提供具體的

See all articles