为查询结果建立向后/向前按钮
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-05-25
最近在Support Forums上有很多问题都是关于如何为一个搜索结果制作象"向后 1 2 3 4 5 向前"样子 的链接。我希望下面的脚本可以帮助你,在你的搜索结果页面中加入这种功能。这个例子是专为MySQL所写 的,但是对于其它的SQL引擎也可以很容易地适应。 因为每种应用都是不同的,这样我使用了一些通用的语句进行MySQL查询处理。TABLE名应该替换成你的 实际表名。YOUR CONDITIONAL HERE应该替换成你的where 条件,并且WHATEVER应该替换成你希望对结果进 行排序的字段(如果你的应用需要降序排列,不要忘记加上DESC)。 <?php $limit=20; // 返回的行 $numresults=mysql_query("select * 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> 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> n"; } // 检查是否为最后一页 if (!(($offset/$limit)==$pages) && $pages!=1) { // 如果不是下一页,则给出向后链接 $newoffset=$offset+$limit; print "<a href="$PHP_SELF?offset=$newoffset">NEXT</a><p>n"; } ?> 这些对你来说可能有些用。当然,你可能想要使HTML的输出更干净一些... 而且,请注意在$PHP_SELF后的链接只包含了$offset。如果你需要为查询的where条件传递参数的话, 你也需也需要把这些补在上面。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于为查询结果建立向后/向前按钮的所有评论