$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 "前一页 \n"; } //计算总共需要的页数 $pages=ceil($nr/20); //$pages变量现在包含所需的页数 for ($i=1; $i <= $pages; $i++) { $newoffset=20*$i; print "$i \n"; } //检查是否是最后一页 if ($pages!=0 && ($newoffset/20)!=$pages) { print "下一页 \n"; } ?> 这只是向你大概地介绍了实现将查询结果分页显示的方法,其他的功能你自己完成。 注意两点:$PHP_SELF只有偏移量一个参数,你可以根据需要加入自己的东西;这种办法对包含百万条记录以上的表的查询效率不高。
//显示返回的20条记录 while ($data=mysql_fetch_array($result)) { //换成你用于显示返回记录的代码 } //下一步,要写出到其它页面的链接 if(!$offset) //如果偏移量是0,不显示前一页的链接 { $preoffset=$offset-20; print "前一页 \n"; } //计算总共需要的页数 $pages=ceil($nr/20); //$pages变量现在包含所需的页数 for ($i=1; $i <= $pages; $i++) { $newoffset=20*$i; print "$i \n"; } //检查是否是最后一页 if ($pages!=0 && ($newoffset/20)!=$pages) { print "下一页 \n"; } ?> 这只是向你大概地介绍了实现将查询结果分页显示的方法,其他的功能你自己完成。 注意两点:$PHP_SELF只有偏移量一个参数,你可以根据需要加入自己的东西;这种办法对包含百万条记录以上的表的查询效率不高。
解决方案 »
- 奇怪,同样的代码,在一个服务器上能得到cookie,在另一个不能。
- 友情链接批量查询程序的正则表达式,求高手帮忙
- 再次iframe问题。。高分求指点
- 关于全局变量和return的问题。谢谢!
- 为什么页面中的字符'·'保存下来,再粘贴出来保存,页面中就变成了乱码?
- PHP+MySQL如何实现新闻程序静态生成HTML?
- 学习PHP以来一直对类和对象的概念和使用比较模糊,请大家进来谈谈心得和体会。进者有分
- 请教JavaScript中有没有能调用外部程序的函数?类似PHP中的exec(),system().
- 请教一个关于文件的问题
- php 电影票 在线选座
- 圣诞快乐,送分了!!多谢大家一年来的关心php板块,和对小弟的帮助!
- 非常简单的问题~APACHE中我的主页应该放到哪啊?
phpbuiler.com 2000年3月19日把它EMAIL给我 我来谈谈我的看法 上一篇 下一篇 最近,论坛里有很我人都在问如何实现查询结果的分页显示。我希望下面的这段代码对你改进自己的程序能有所帮助。这些代码是用于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> \n"; } //计算总共需要的页数 $pages=ceil($nr/20); //$pages变量现在包含所需的页数 for ($i=1; $i <= $pages; $i++) { $newoffset=20*$i; print "<a href=\"$PHP_SELF?offset=$newoffset\">$i</a> \n"; } //检查是否是最后一页 if ($pages!=0 && ($newoffset/20)!=$pages) { print "<a href="$PHP_SELF?offset=$newoffset">下一页</a> \n"; } ?> 这只是向你大概地介绍了实现将查询结果分页显示的方法,其他的功能你自己完成。 注意两点:$PHP_SELF只有偏移量一个参数,你可以根据需要加入自己的东西;这种办法对包含百万条记录以上的表的查询效率不高。