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


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抓即时股票信息
Oct 09 PHP
给php新手谈谈我的学习心得
Feb 25 PHP
用php解析html的实现代码
Aug 08 PHP
关于PHP的相似度计算函数:levenshtein的使用介绍
Apr 15 PHP
PHP大小写问题:函数名和类名不区分,变量名区分
Jun 17 PHP
php漏洞之跨网站请求伪造与防止伪造方法
Aug 15 PHP
PHP依赖倒置(Dependency Injection)代码实例
Oct 11 PHP
php中chdir()函数用法实例
Nov 13 PHP
thinkphp循环结构用法实例
Nov 24 PHP
PHP抓取网页、解析HTML常用的方法总结
Jul 01 PHP
php cli配置文件问题分析
Oct 15 PHP
PHP文件管理之实现网盘及压缩包的功能操作
Sep 20 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
Zend Framework入门教程之Zend_Registry组件用法详解
2016/12/09 PHP
PHP7 整型处理机制修改
2021/03/09 PHP
扩展javascript的Date方法实现代码(prototype)
2010/11/20 Javascript
使用jQuery.fn自定义jQuery翻页插件
2013/01/20 Javascript
javascript setTimeout和setInterval计时的区别详解
2013/06/21 Javascript
变量声明时命名与变量作为对象属性时命名的区别解析
2013/12/06 Javascript
JQuery给元素绑定click事件多次执行的解决方法
2014/05/29 Javascript
js实现的全国省市二级联动下拉选择菜单完整实例
2015/08/17 Javascript
js实现Form栏显示全格式时间时钟效果代码
2015/08/19 Javascript
深入浅析search 搜索框的写法
2016/08/02 Javascript
Bootstrap中表单控件状态(验证状态)
2016/08/04 Javascript
Vue.js快速入门实例教程
2016/10/15 Javascript
详解用webpack把我们的业务模块分开打包的方法
2017/07/20 Javascript
Mac下通过brew安装指定版本的nodejs教程
2018/05/17 NodeJs
微信小程序实现bindtap等事件传参
2019/04/08 Javascript
Vue infinite update loop的问题解决
2019/04/23 Javascript
微信小程序分享功能onShareAppMessage(options)用法分析
2019/04/24 Javascript
深入解析Vue源码实例挂载与编译流程实现思路详解
2019/05/05 Javascript
[01:02]DOTA2上海特锦赛SHOWOPEN
2016/03/25 DOTA
Python爬虫实现抓取京东店铺信息及下载图片功能示例
2018/08/07 Python
python3.5安装python3-tk详解
2019/04/26 Python
python从list列表中选出一个数和其对应的坐标方法
2019/07/20 Python
Python进程Multiprocessing模块原理解析
2020/02/28 Python
TensorFlow实现模型断点训练,checkpoint模型载入方式
2020/05/26 Python
澳大利亚领先的运动鞋商店:Hype DC
2018/03/31 全球购物
英国时尚首饰品牌:Missoma
2020/06/29 全球购物
Ref与out有什么不同
2012/11/24 面试题
实习生的自我鉴定范文欣赏
2013/11/20 职场文书
金融专业毕业生推荐信
2013/11/26 职场文书
信息专业学生学习的自我评价
2014/02/17 职场文书
暑期社会实践感言
2014/02/25 职场文书
2014客服代表实习自我鉴定
2014/09/18 职场文书
2015年安全月活动总结
2015/03/26 职场文书
2015年市场部工作总结
2015/04/30 职场文书
2016幼儿园教师节新闻稿
2015/11/25 职场文书
解读MySQL的客户端和服务端协议
2021/05/10 MySQL