0
0
最近,论坛里有很我人都在问如何实现查询结果的分页显示。我希望下面的这段代码对你改进自己的程序能有所帮助。这些代码是用于MYSQL的,但很容易移植到其它SQL上。
由于每个程序的特殊性,所以我在MYSQL的查询里使用了一些很通用的语句。用你的表名替换TABLE;用你的条件语句代替YOUR_CONDITION_HERE;用你希望按其排序的字段名代替WHATEVER(当然如果要排倒序,别忘了加上DESC子句)。
$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 "前一页 ";
}
//计算总共需要的页数
$pages=ceil($nr/20); //$pages变量现在包含所需的页数
for ($i=1; $i {
$newoffset=20*$i;
print "$i ";
}
//检查是否是最后一页
if ($pages!=0 && ($newoffset/20)!=$pages)
{
print "下一页 ";
}
?>
这只是向你大概地介绍了实现将查询结果分页显示的方法,其他的功能你自己完成。
注意两点:$PHP_SELF只有偏移量一个参数,你可以根据需要加入自己的东西;这种办法对包含百万条记录以上的表的查询效率不高。
由于每个程序的特殊性,所以我在MYSQL的查询里使用了一些很通用的语句。用你的表名替换TABLE;用你的条件语句代替YOUR_CONDITION_HERE;用你希望按其排序的字段名代替WHATEVER(当然如果要排倒序,别忘了加上DESC子句)。
$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 "前一页 ";
}
//计算总共需要的页数
$pages=ceil($nr/20); //$pages变量现在包含所需的页数
for ($i=1; $i {
$newoffset=20*$i;
print "$i ";
}
//检查是否是最后一页
if ($pages!=0 && ($newoffset/20)!=$pages)
{
print "下一页 ";
}
?>
这只是向你大概地介绍了实现将查询结果分页显示的方法,其他的功能你自己完成。
注意两点:$PHP_SELF只有偏移量一个参数,你可以根据需要加入自己的东西;这种办法对包含百万条记录以上的表的查询效率不高。
相关标签:
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门AI工具
相关专题
C++ 单元测试与代码质量保障
本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。
54
2026.01.16
热门下载
相关下载
精品课程
相关推荐
/
热门推荐
/
最新课程









