<span style="FONT-SIZE: 10pt">最近,论坛里有很我人都在问如何实现查询结果的分页显示。我希望下面的这段代码对你改进自己的程序能有所帮助。这些代码是用于MYSQL的,但很容易移植到其它SQL上。 <br><br>由于每个程序的特殊性,所以我在MYSQL的查询里使用了一些很通用的语句。用你的表名替换TABLE;用你的条件语句代替YOUR_CONDITION_HERE;用你希望按其排序的字段名代替WHATEVER(当然如果要排倒序,别忘了加上DESC子句)。 <br><br><?php <br /><br />$qh=mysql_query("SELECT COUNT(*) AS rcnt FROM TABLE WHERE YOUR_CONDITION_HERE ORDER BY WHATEVER"); <br /><br />$data=mysql_fetch_array($qh); <br /><br />$nr=$data["rcnt"]; <br /><br />//判断偏移量参数是否传递给了脚本,如果没有就使用默认值0 <br /><br />if (empty($offset)) <br /><br />{ <br /><br />$offset=0; <br /><br />} <br /><br />//查询结果(这里是每页20条,但你自己完全可以改变它) <br /><br />$result=mysql_query("SELECT id,name,phone FROM TABLE WHERE YOUR_CONDITION_HERE ORDER BY WHATEVER LIMIT $offset, 20"); <br /><br /><br /><br />//显示返回的20条记录 <br /><br />while ($data=mysql_fetch_array($result)) <br /><br />{ <br /><br />//换成你用于显示返回记录的代码 <br /><br />} <br /><br />//下一步,要写出到其它页面的链接 <br /><br />if(!$offset) //如果偏移量是0,不显示前一页的链接 <br /><br />{ <br /><br />$preoffset=$offset-20; <br /><br />print "<a href=\"$PHP_SELF?offset=$preoffset\">前一页</a> \n"; <br><br>} <br><br>//计算总共需要的页数 <br><br>$pages=ceil($nr/20); //$pages变量现在包含所需的页数 <br><br>for ($i=1; $i <= $pages; $i++) <br /><br />{ <br /><br />$newoffset=20*$i; <br /><br />print "<a href=\"$PHP_SELF?offset=$newoffset\">$i</a> \n"; <br><br>} <br><br>//检查是否是最后一页 <br><br>if ($pages!=0 && ($newoffset/20)!=$pages) <br><br>{ <br><br>print "<a href="$PHP_SELF?offset=$newoffset">下一页</a> \n"; <br><br>} <br><br>?> <br><br>这只是向你大概地介绍了实现将查询结果分页显示的方法,其他的功能你自己完成。 <br><br>注意两点:$PHP_SELF只有偏移量一个参数,你可以根据需要加入自己的东西;这种办法对包含百万条记录以上的表的查询效率不高。 <br>phpbuiler.com </span>