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


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 相关文章推荐
Ajax PHP分页演示
Jan 02 PHP
PHP和Mysqlweb应用开发核心技术-第1部分 Php基础-2 php语言介绍
Jul 03 PHP
使用php 获取时间今天明天昨天时间戳的详解
Jun 20 PHP
php文件缓存类汇总
Nov 21 PHP
PHP向socket服务器收发数据的方法
Jan 24 PHP
php猴子选大王问题解决方法
May 12 PHP
php中define用法实例
Jul 30 PHP
PHP编写RESTful接口
Feb 23 PHP
PHP在innodb引擎下快速代建全文搜索功能简明教程【基于xunsearch】
Oct 14 PHP
PHP面向对象程序设计方法实例详解
Dec 24 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
Feb 07 PHP
PHP按符号截取字符串的指定部分的实现方法
Sep 10 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制作的意见反馈表源码
2007/03/11 PHP
使用php判断服务器是否支持Gzip压缩功能
2013/09/24 PHP
php支持断点续传、分块下载的类
2016/05/02 PHP
extjs 初始化checkboxgroup值的代码
2011/09/21 Javascript
window.requestAnimationFrame是什么意思,怎么用
2013/01/13 Javascript
jQuery列表拖动排列具体实现
2013/11/04 Javascript
javascript 3d 逐侦产品展示(核心精简)
2014/03/26 Javascript
多引号嵌套的变量命名的问题
2014/05/09 Javascript
xtemplate node.js 的使用方法实例解析
2016/08/22 Javascript
AnjularJS中$scope和$rootScope的区别小结
2016/09/18 Javascript
深入理解react-router@4.0 使用和源码解析
2017/05/23 Javascript
jQuery使用bind函数实现绑定多个事件的方法
2017/10/11 jQuery
vue resource post请求时遇到的坑
2017/10/19 Javascript
thinkjs 文件上传功能实例代码
2017/11/08 Javascript
vue vuex vue-rouert后台项目——权限路由(适合初学)
2017/12/29 Javascript
vue中实现高德定位功能
2019/12/03 Javascript
微信小程序开发搜索功能实现(前端+后端+数据库)
2020/03/04 Javascript
原生js实现放大镜组件
2021/01/22 Javascript
[02:00]DOTA2英雄COSPLAY闹市街头巡游助威2015国际邀请赛
2015/08/02 DOTA
Python面向对象之继承代码详解
2018/01/29 Python
python scatter散点图用循环分类法加图例
2019/03/19 Python
分析运行中的 Python 进程详细解析
2019/06/22 Python
python中的列表与元组的使用
2019/08/08 Python
python实现复制大量文件功能
2019/08/31 Python
python3中利用filter函数输出小于某个数的所有回文数实例
2019/11/24 Python
python3实现绘制二维点图
2019/12/04 Python
澳大利亚电子产品购物网站:Dick Smith
2017/02/02 全球购物
保安的辞职报告怎么写
2014/01/20 职场文书
毕业晚会主持词
2014/03/24 职场文书
班级体育活动总结
2014/07/05 职场文书
教育项目合作协议书格式
2014/10/17 职场文书
护士长2014年终工作总结
2014/11/11 职场文书
入党申请书怎么写?
2019/06/21 职场文书
超市啤酒狂欢夜策划方案范文!
2019/07/03 职场文书
pandas DataFrame.shift()函数的具体使用
2021/05/24 Python
Python 数据可视化工具 Pyecharts 安装及应用
2022/04/20 Python