为查询结果建立向后/向前按钮

最近在Support Forums上有很多问题都是关于如何为一个搜索结果制作象”向后 1
2 3 4 5 向前”样子
的链接。我希望下面的脚本可以帮助你,在你的搜索结果页面中加入这种功能。这个例子是专为MySQL所写
的,但是对于其它的SQL引擎也可以很容易地适应。
因为每种应用都是不同的,这样我使用了一些通用的语句进行MySQL查询处理。TABLE名应该替换成你的
实际表名。YOUR CONDITIONAL HERE应该替换成你的where
条件,并且WHATEVER应该替换成你希望对结果进
行排序的字段(如果你的应用需要降序排列,不要忘记加上DESC)。 ?php
$limit=20; // 返回的行 $numresults=mysql_query(“select *澳门新浦京app下载 , from TABLE
where YOUR CONDITIONAL HERE order by WHATEVER”);
$numrows=mysql_num_rows($numresults); //
接着判断是否offset已经传给脚本了,如果没有设为0 if (empty($offset)) {
$offset=0; } // 取结果 $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) { // 如果offset为0,则忽略PREV链接 $prevoffset=$offset-20;
print “a href=”$PHP_SELF?offset=$prevoffset”PREV/a nbsp; n”; } //
计算需要链接的页面数 $pages=intval($numrows/$limit); //
如果除后没有余数,$pages 现在包含需要页面的整数值 if ($numrows%$limit) {
// 如果有余数那么增加一页 $pages++; } for ($i=1;$i=$pages;$i++) { //
循环 $newoffset=$limit*($i-1); print “a
href=”$PHP_SELF?offset=$newoffset”$i/a nbsp; n”; } //
检查是否为最后一页 if (!(($offset/$limit)==$pages) $pages!=1) { //
如果不是,则给出向后链接 $newoffset=$offset+$limit; print “a
href=”$PHP_SELF?offset=$newoffset”NEXT/apn”; } ?
这些对你来说可能有些用。当然,你可能想要使HTML的输出更干净一些…
而且,请注意在$PHP_SELF后的链接只包含了$offset。如果你需要为查询的where条件传递参数的话,
你也需也需要把这些补在上面。

?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 0 if (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 nbsp; “; } // 计算页面数
$pages=intval($numrows/$limit); // $pages now contains int of pages
needed unless there is a remainder from division if ($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 nbsp; “; } // check to see if
last page if (!(($offset/$limit)==$pages) $pages!=1) { // not last page
so give NEXT link $newoffset=$offset+$limit; print “a
href=”$PHP_SELF?offset=$newoffset”/ap”; } ?

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图