首页 > 数据库 > MySQL > 正文

PHP+MySQL下分页显示的实现

2024-07-24 12:57:07
字体:
来源:转载
供稿:网友

  最近,论坛里有很我人都在问如何实现查询结果的分页显示。我希望下面的这段代码对你改进自己的程序能有所帮助。这些代码是用于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只有偏移量一个参数,你可以根据需要加入自己的东西;这种办法对包含百万条记录以上的表的查询效率不高。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表