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


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 相关文章推荐
php学习之运算符相关概念
Jun 09 PHP
PHP读取网页文件内容的实现代码(fopen,curl等)
Jun 23 PHP
PHP句法规则详解 入门学习
Nov 09 PHP
php生成txt文件标题及内容的方法
Jan 16 PHP
PHP获取mysql数据表的字段名称和详细信息的方法
Sep 27 PHP
PHP多个文件上传到服务器实例
Oct 29 PHP
PHP调用Linux命令权限不足问题解决方法
Feb 07 PHP
详谈配置phpstorm完美支持Codeigniter(CI)代码自动完成(代码提示)
Apr 07 PHP
Yii2框架可逆加密简单实现方法
Aug 25 PHP
laravel获取不到session的三种解决办法【推荐】
Sep 16 PHP
php中上传文件的的解决方案
Sep 25 PHP
laravel开发环境homestead搭建过程详解
Jul 03 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自带函数给数字或字符串自动补齐位数
2014/07/29 PHP
PHP让数组中有相同值的组成新的数组实例
2017/12/31 PHP
js兼容标准的表格变色效果
2008/06/28 Javascript
js调试工具 Javascript Debug Toolkit 2.0.0版本发布
2008/12/02 Javascript
javascript自启动函数的问题探讨
2013/10/05 Javascript
常见的原始JS选择器使用方法总结
2014/04/09 Javascript
javascript的数组和常用函数详解
2014/05/09 Javascript
jQuery实现的精美平滑二级下拉菜单效果代码
2016/03/28 Javascript
js中Number数字数值运算后值不对的解决方法
2017/02/28 Javascript
详解如何使用webpack打包Vue工程
2017/05/27 Javascript
Vue.js实例方法之生命周期详解
2017/07/03 Javascript
Webpack优化配置缩小文件搜索范围
2017/12/25 Javascript
Vue2.0 http请求以及loading展示实例
2018/03/06 Javascript
node中modules.exports与exports导出的区别
2018/06/08 Javascript
Node.js 进程平滑离场剖析小结
2019/01/24 Javascript
Javascript var变量删除原理及实现
2020/08/26 Javascript
python继承和抽象类的实现方法
2015/01/14 Python
Python的Scrapy爬虫框架简单学习笔记
2016/01/20 Python
Python实现返回数组中第i小元素的方法示例
2017/12/04 Python
在Python中使用defaultdict初始化字典以及应用方法
2018/10/31 Python
pandas通过loc生成新的列方法
2018/11/28 Python
Python爬虫动态ip代理防止被封的方法
2019/07/07 Python
Python爬虫抓取技术的一些经验
2019/07/12 Python
Flask框架 CSRF 保护实现方法详解
2019/10/30 Python
Python三元运算与lambda表达式实例解析
2019/11/30 Python
Python单元测试模块doctest的具体使用
2020/02/10 Python
python实现从尾到头打印单链表操作示例
2020/02/22 Python
解决pycharm不能自动补全第三方库的函数和属性问题
2020/03/12 Python
python对接ihuyi实现短信验证码发送
2020/05/10 Python
解决pyinstaller 打包exe文件太大,用pipenv 缩小exe的问题
2020/07/13 Python
HTML5之WebGL 3D概述(下)—借助类库开发及框架介绍
2013/01/31 HTML / CSS
南非最大的花卉和送礼服务:NetFlorist
2017/09/13 全球购物
英国领先的互联网葡萄酒礼品商:Vintage Wine & Port
2019/05/24 全球购物
保密协议书范本
2014/04/22 职场文书
安全生产专项整治方案
2014/05/06 职场文书
文明美德伴我成长演讲稿
2014/05/12 职场文书