澳门新葡萄京官网注册PHP MySQL下分页显示的实现

最近,论坛里有很我人都在问如何实现查询结果的分页显示。我希望下面的这段代码对你改进自己的程序能有所帮助。这些代码是用于MYSQL的,但很容易移植到其它SQL上。
由于每个程序的特殊性,所以我在MYSQL的查询里使用了一些很通用的语句。用你的表名替换TABLE;用你的条件语句代替YOUR_CONDITION_HERE;用你希望按其排序的字段名代替WHATEVER。
?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; } //查询结果
$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”前一页/anbsp;”; }
//计算总共需要的页数 $pages=ceil($nr/20);
//$pages变量现在包含所需的页数 for ($i=1; $i = $pages; $i ) {
$newoffset=20*$i; print “a
href=”$PHP_SELF?offset=$newoffset”$i/anbsp;”; } //检查是否是最后一页
if ($pages!=0 ($newoffset/20)!=$pages) { print “a
href=”$PHP_SELF?offset=$newoffset”/anbsp;”; } ?
这只是向你大概地介绍了实现将查询结果分页显示的方法,其他的功能你自己完成。
注意两点:$PHP_SELF只有偏移量一个参数,你可以根据需要加入自己的东西;这种办法对包含百万条记录以上的表的查询效率不高。

?php//本例子摘自phpbuilder.com//稍加翻译//sprming@netease.com$limit=20;
// 每页显示的行数$numresults=mysql_query(select * from TABLE where
YOUR CONDITIONAL HERE order by
WHATEVER);//换成你所需要的sql语句$numrows=mysql_num_rows($numresults);//
next determine if offset has been passed to script, if not use 0if
(empty($offset)) {$offset=1;}// 得到查询结果$result=mysql_query(select
id,name,phone .from TABLE where YOUR CONDITIONAL HERE .order by WHATEVER
limit $offset,$limit);// 现在显示查询结果while
($data=mysql_fetch_array($result)) {//
在这里插入您要显示的结果以及样式}// 显示按钮if ($offset!=1) { // bypass
PREV link if offset is 1$prevoffset=$offset-20;print a
href=/$PHP_SELF?offset=$prevoffset//a /n;}//
计算页面数$pages=intval($numrows/$limit);// $pages now contains int of
pages needed unless there is a remainder from divisionif
($numrows%$limit) {// has remainder so add one page$pages++;}for
($i=1;$i=$pages;$i++) { // 显示页数$newoffset=$limit*($i-1);print a
href=/$PHP_SELF?offset=$newoffset/$i/a /n;}// check to see if last
pageif (!(($offset/$limit)==$pages) && $pages!=1) {// not last page so
give NEXT link$newoffset=$offset+$limit;print a
href=/$PHP_SELF?offset=$newoffset//ap/n;}?

发表评论

电子邮件地址不会被公开。 必填项已用*标注