搜索
首页php教程php手册PHP 分页代码与分页原理解析

本文章来给各位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 0,10 // 前10条记录
select * from table limit 10,10 // 第11至20条记录
select * from table limit 20,10 // 第21至30条记录
select * from table limit 10,10 // 第11至20条记录

select * from table limit 20,10 // 第21至30条记录

……

 代码如下 复制代码

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

这一组sql语句其实就是当$PageSize=10的时候取表内每一页数据的sql语句,我们可以总结出这样一个模板:
 代码如下 复制代码
select * from table limit ($CurrentPageID - 1) * $PageSize, $PageSize

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

总结,分页就根据用户点击连接,然后由于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;
? 'id']?>
       

       
       
                    }
            // 循环显示数据
           while ($row = mysql_fetch_array($rs));
            echo "

        ID td>
       

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

    ?>




转载方便,但请附上文章地址:-)

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系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

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版