IT技术江湖   操作系统   安全技术   平面设计   Web开发   数据库   互联网   搜索引擎   网络广告   
引擎技术江湖  BLOG  合作联系
本站
Google
IT技术江湖
首页>Web开发>php> 完全讲解PHP+MySQL的分页显示示例分析
  • IT技术江湖
  • 完全讲解PHP+MySQL的分页显示示例分析
    http://www.hack1st.com 来源: 2008-03-28 阅读: 评论

     Web开发是今后分布式程式开发的主流,通常的web开发都要涉及到与数据库打交道,客户端从服务器端读取通常都是以分页的形式来显示,一页一页的阅读起来既方便又美观。所以说写分页程序是web开发的一个重要组成部分,在这里,我们共同来研究分页程序的编写。

    一、分页程序的原理

      分页程序有两个非常重要的参数:每页显示几条记录($pagesize)和当前是第几页($page)。有了这两个参数就可以很方便的写出分页程序,我们以MySql数据库作为数据源,在MySQL里如果要想取出表内某段特定内容可以使用的T-SQL语句:select * from table limit offset,rows来实现。这里的offset是记录偏移量,它的计算方法是offset=$pagesize*($page-1),rows是要显示的记录条数,这里就是$page。也就是说select * from table limit 10,10这条语句的意思是取出表里从第11条记录开始的20条记录。

    二、主要代码解析

    $pagesize=10; //设置每一页显示的记录数
    $conn=mysql_connect("localhost","root",""); //连接数据库
    $rs=mysql_query("select count(*) from tb_product",$conn); //取得记录总数$rs
    $myrow = mysql_fetch_array($rs);
    $numrows=$myrow[0];

    //计算总页数

    $pages=intval($numrows/$pagesize);

    //判断页数设置

    if (isset($_GET['page'])){
     $page=intval($_GET['page']);
    }
    else{
     $page=1; //否则,设置为第一页
    }


    三、创建用例用表myTable


    create table myTable
    (id int NOT NULL auto_increment,news_title varchar(50),
    news_cont text,add_time datetime,PRIMARY KEY(id))

     
    四、完整代码

    <html>
    <head>
    <title>php分页示例</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head>

    <body>
    <?php
     $conn=mysql_connect("localhost","root","");
     //设定每一页显示的记录数
     $pagesize=1;
     mysql_select_db("mydata",$conn);
     //取得记录总数$rs,计算总页数用
     $rs=mysql_query("select count(*) from tb_product",$conn);
     $myrow = mysql_fetch_array($rs);
     $numrows=$myrow[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 myTable
     order by id desc limit $offset,$pagesize",$conn);
     if ($myrow = mysql_fetch_array($rs))
     {
    $i=0;
    ?>
    <table border="0" width="80%">
    <tr>
     <td width="50%" bgcolor="#E0E0E0">
    <p align="center">标题</td>
    <td width="50%" bgcolor="#E0E0E0">
    <p align="center">发布时间</td>
    </tr>
    <?php
     do {
    $i++;
    ?>
    <tr>
     <td width="50%"><?=$myrow["news_title"]?></td>
     <td width="50%"><?=$myrow["news_cont"]?></td>
    </tr>
     <?php
     }
     while ($myrow = mysql_fetch_array($rs));
    echo "</table>";
    }
    echo "<div align='center'>共有".$pages."页(".$page."/".$pages.")";
    for ($i=1;$i< $page;$i++)
     echo "<a href='fenye.php?page=".$i."'>[".$i ."]</a> ";
     echo "[".$page."]";
     for ($i=$page+1;$i<=$pages;$i++)
    echo "<a href='fenye.php?page=".$i."'>[".$i ."]</a> ";
    echo "</div>";
     ?>
    </body>
    </html>

     
    五、总结

    本例代码在windows2000 server+php4.4.0+mysql5.0.16上运行正常。该示例显示的分页格式是[1][2][3]…这样形式。假如想显示成“首页 上一页 下一页 尾页”这样形式,请加入以下代码:


    $first=1;
    $prev=$page-1;
    $next=$page+1;
    $last=$pages;

    if ($page > 1)
    {
     echo "<a href='fenye.php?page=".$first."'>首页</a> ";

    上一页12 下一页

    上一篇:PHP程序加速探索之服务器负载测试  
    下一篇:用Suhosin加强PHP脚本语言安全性

    ·网友互动--用户名: (新注册) 密码: 匿名评论 [所有评论]
    评论内容:(用户发表意见仅代表其个人意见,评论内容与本站立场无关,请自觉遵守互联网相关政策法规)
    关注此文读者还看过
    • ·PHP实例:实现文件上传的程序源码
      ·在PHP中使用ASP.NET AJAX
      ·PHP 5.0中多态性的实现方案浅析
      ·大型系统上PHP令人不爽的九大原因
      ·初学入门 PHP 和 MySQL
      ·用Suhosin加强PHP脚本语言安全性
      ·完全讲解PHP+MySQL的分页显示示例分析
      ·PHP程序加速探索之服务器负载测试
      ·PHP5手动最简安装方法
      ·用SSH与PHP相连接 确保数据传输的安全性
    最新更新
    • ·PHP实例:实现文件上传的程序源码
      ·在PHP中使用ASP.NET AJAX
      ·PHP 5.0中多态性的实现方案浅析
      ·大型系统上PHP令人不爽的九大原因
      ·用Suhosin加强PHP脚本语言安全性
      ·完全讲解PHP+MySQL的分页显示示例分析
      ·PHP程序加速探索之服务器负载测试
      ·PHP5手动最简安装方法
      ·用SSH与PHP相连接 确保数据传输的安全性
      ·Apache+PHP+MySQL建立数据库驱动的动态网站
    文章关注度排行
    ·PHP开发一个完整、安全的用户登录系统
    ·PHP入门的学习方法
    ·PHP空白页面常见原因及解决方法
    ·Apache+PHP+MySQL建立数据库驱动的动态网站
    ·PHP常用正则表达式收集
    ·PHP学习入门的一些基础知识
    ·php命令行参数详解及应用
    ·提升PHP速度全攻略
    热点推荐
    PHP开发一个完整、安全的用户登录系统
    PHP开发一个完整、安全
    PHP入门的学习方法
    PHP入门的学习方法
    提升PHP速度全攻略
    提升PHP速度全攻略
    频道推荐
    • ·PHP开发一个完整、安全的用户登录系统
    • ·PHP入门的学习方法
    • ·PHP学习入门的一些基础知识
    • ·提升PHP速度全攻略
    本站精华
    PHP入门的学习方法
    PHP入门的学
    提升PHP速度全攻略
    提升PHP速度
    PHP开发一个完整、安全的用户登录系统
    PHP开发一个
    • ·PHP开发一个完整、安全的用户
    • ·提升PHP速度全攻略
    • ·PHP入门的学习方法
    • ·PHP学习入门的一些基础知识
    • | 网站导航 | 联系QQ | 编辑邮箱 | RSS订阅 | 友情链接 | 官方blog
    • 版权所有:IT技术江湖 @2007-2008
    • powered by www.hack1st.com online services. all rights reserved.京ICP备07005766号