快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

PHP+MySQL下分页显示的实现

  最近,论坛里有很我人都在问如何实现查询结果的分页显示。我希望下面的这段代码对你改进自己的程序能有所帮助。这些代码是用于MYSQL的,但很轻易移植到其它SQL上。

  由于每个程序的特别性,所以我在MYSQL的查询里使用了一些很通用的语句。用你的表名替换TABLE;用你的条件语句代替YOUR_CONDITION_HERE;用你希望按其排序的字段名代替WHATEVER(当然假如要排倒序,别忘了加上DESC子句)。

<?php

$qh=mysql_query("SELECT COUNT(*) AS rcnt FROM TABLE WHERE YOUR_CONDITION_HERE ORDER BY WHATEVER");

$data=mysql_fetch_array($qh);

$nr=$data["rcnt"];

//判定偏移量参数是否传递给了脚本,假如没有就使用默认值0

if (empty($offset))

{

$offset=0;

}

//查询结果(这里是每页20条,但你自己完全可以改变它)

$result=mysql_query("SELECT id,name,phone FROM TABLE WHERE YOUR_CONDITION_HERE ORDER BY WHATEVER LIMIT $offset, 20");



//显示返回的20条记录

while ($data=mysql_fetch_array($result))

{

//换成你用于显示返回记录的代码

}

//下一步,要写出到其它页面的链接

if(!$offset) //假如偏移量是0,不显示前一页的链接

{

$preoffset=$offset-20;

print "<a href="$PHP_SELF?offset=$preoffset">前一页</a>&nbsp;n";

}

//计算总共需要的页数

$pages=ceil($nr/20); //$pages变量现在包含所需的页数

for ($i=1; $i <= $pages; $i++)

{

$newoffset=20*$i;

print "<a href="$PHP_SELF?offset=$newoffset">$i</a>&nbsp;n";

}

//检查是否是最后一页

if ($pages!=0 && ($newoffset/20)!=$pages)

{

print "<a href="$PHP_SELF?offset=$newoffset">下一页</a>&nbsp;n";

}

?>

这只是向你大概地介绍了实现将查询结果分页显示的方式,其他的功能你自己完成。

注重两点:$PHP_SELF只有偏移量一个参数,你可以根据需要加入自己的东西;这种办法对包含百万条记录以上的表的查询效率不高。
返回类别: 教程
上一教程: PHP的面向对象编程:开发大型PHP项目的方式(二)
下一教程: 谈谈PHP语法(5)

您可以阅读与"PHP+MySQL下分页显示的实现"相关的教程:
· 我写的一个用PHP+MYSQL轻松实现论坛里的分级+分页显示的例程!(很具体的哦!虽然效率不是最佳,却非...
· 一个在PHP中利用递归实现论坛分级显示的例子(为了简朴起见,我将分页显示部分去掉了)
· 例子:用PHP3实现MySQL数据的分页显示
· 用PHP和SQL Sever实现分页显示
· 用PHP实现ODBC数据分页显示一例
    微笑服务 优质保证 索取样品