PHP+MySQL制作简单分页,分页原理--广州网站建设,广州网站建设公司,广州网页设计,网站制作,网站建设-WEB新势力
ASP,ASP.NET,C#.NET,Aajax,PHP,JSP,XML及其实相关语言精华篇,让你找到自己想要的内容.如有不全,请您发表评论
  • PHP+MySQL制作简单分页,分页原理
  • 在PHP中与ASP一样,用户可以根据自己的需求设置自己喜欢的分页模式,下面我们就来看一下在PHP中简单分页的原理:

    一、分页程序的原理

      分页程序有两个非常重要的参数:每页显示几条记录($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> ";
     echo "<a href='fenye.PHP?page=".$prev."'>上一页</a> ";
    }

    if ($page < $pages)
    {
     echo "<a href='fenye.PHP?page=".$next."'>下一页</a>
     echo "<a href='fenye.PHP?page=".$last."'>尾页</a> ";
    }

      其实,写分页显示代码是很简单的,只要掌握了它的工作原理。希望这篇文章能够带给那些需要这方面程序web程序员的帮助。

    广州网站建设
  • Write By: [Helly]   Date: [2007-09-21]   Views: [9076]   Comments: 
  •  上一篇:利用PHP制作简单的内容采集器   下一篇:如何限制虚拟主机流量?
  •  
  •  √ Write Your Comment
  •  昵称: 
  •  评论: