当前位置: 首页 > 图文教程 > 网络编程 > PHP > web开发中PHP+MySQL分页显示示例分析

PHP
php 多线程上下文中安全写文件实现代码
PHP类的使用 实例代码讲解
用php实现让页面只能被百度gogole蜘蛛访问的方法
php 学习笔记
PHP编程过程中需要了解的this,self,parent的区别
php 操作excel文件的方法小结
使用PHP获取网络文件的实现代码
PHP 巧用数组降低程序的时间复杂度
php下将XML转换为数组
php 文件上传代码(限制jpg文件)
php 无极分类(递归)实现代码
PHP 采集获取指定网址的内容
PHP 将图片按创建时间进行分类存储的实现代码
PHP 存储文本换行实现方法
PHP 批量更新网页内容实现代码
用PHP查询搜索引擎排名位置的代码
用php实现的获取网页中的图片并保存到本地的代码
php实现首页链接查询 友情链接检查的代码
处理php自动反斜杠的函数代码
php实现的遍历文件夹下所有文件,编辑删除

web开发中PHP+MySQL分页显示示例分析


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-23   浏览: 126 ::
收藏到网摘: n/a

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条记录。

二、主要代码解析

//计算总页数

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程序员的帮助。