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


Posted in PHP onOctober 09, 2006

最近在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条件传递参数的话, 你也需也需要把这些补在上面。  

PHP 相关文章推荐
如何在WIN2K下安装PHP4.04
Oct 09 PHP
PHP和Mysqlweb应用开发核心技术-第1部分 Php基础-2 php语言介绍
Jul 03 PHP
php模拟js函数unescape的函数代码
Oct 20 PHP
php5.2 Json不能正确处理中文、GB编码的解决方法
Mar 28 PHP
PHP调用VC编写的COM组件实例
Mar 29 PHP
php生成固定长度纯数字编码的方法
Jul 09 PHP
PHP 根据key 给二维数组分组
Dec 09 PHP
一键生成各种尺寸Icon的php脚本(实例)
Feb 08 PHP
thinkphp 中的volist标签在ajax操作中的特殊性(推荐)
Jan 15 PHP
phpstudy隐藏index.php的方法
Sep 21 PHP
如何利用PHP实现上传图片功能详解
Sep 24 PHP
PHP7 标准库修改
Mar 09 PHP
投票管理程序
Oct 09 #PHP
用PHP和ACCESS写聊天室(九)
Oct 09 #PHP
用PHP和ACCESS写聊天室(八)
Oct 09 #PHP
用PHP和ACCESS写聊天室(七)
Oct 09 #PHP
一个简单实现多条件查询的例子
Oct 09 #PHP
用PHP和ACCESS写聊天室(十)
Oct 09 #PHP
php生成EXCEL的东东
Oct 09 #PHP
You might like
用PHP编程语言开发动态WAP页面
2006/10/09 PHP
解析PHP实现下载文件的两种方法
2013/07/05 PHP
php分页函数示例代码分享
2014/02/24 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
window.onload 加载完毕的问题及解决方案(下)
2009/07/09 Javascript
json 实例详细说明教程
2009/10/31 Javascript
判断控件是否已加载完成的代码
2010/02/24 Javascript
js 上传图片预览问题
2010/12/06 Javascript
基于jquery的使ListNav兼容中文首字拼音排序的实现代码
2011/07/10 Javascript
javascript将浮点数转换成整数的三个方法
2014/06/23 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
director.js实现前端路由使用实例
2015/02/03 Javascript
node.js插件nodeclipse安装图文教程
2020/10/19 Javascript
jquery实现图片切换代码
2016/10/13 Javascript
js中setTimeout的妙用--防止循环超时
2017/03/06 Javascript
Angularjs中使用轮播图指令swiper
2017/05/30 Javascript
解析Angular 2+ 样式绑定方式
2018/01/15 Javascript
vue3.0 CLI - 3.2 路由的初级使用教程
2018/09/20 Javascript
微信小程序设置滚动条过程详解
2019/07/25 Javascript
Element-UI中关于table表格的那些骚操作(小结)
2019/08/15 Javascript
微信小程序实现可长按移动控件
2020/11/01 Javascript
Python MD5文件生成码
2009/01/12 Python
python解析html开发库pyquery使用方法
2014/02/07 Python
Python常用小技巧总结
2015/06/01 Python
Django查询优化及ajax编码格式原理解析
2020/03/25 Python
Python本地及虚拟解释器配置过程解析
2020/10/13 Python
HTML5手机端弹出遮罩菜单特效代码
2016/01/27 HTML / CSS
俄罗斯达美乐比萨外送服务:Domino’s Pizza
2020/12/18 全球购物
机械工程师的岗位职责
2013/11/17 职场文书
经贸日语专业个人求职信范文
2013/12/28 职场文书
小学教师培训感言
2014/02/11 职场文书
幼儿园教师师德表现自我评价
2015/03/05 职场文书
2016年春节慰问信息大全
2015/11/30 职场文书
世界十大狙击步枪排行榜
2022/03/20 杂记
SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询
2022/05/25 SQL Server
springboot创建的web项目整合Quartz框架的项目实践
2022/06/21 Java/Android