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


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 24 PHP
php存储过程调用实例代码
Feb 03 PHP
php.ini修改php上传文件大小限制的方法详解
Jun 17 PHP
使用PHP求两个文件的相对路径
Jun 20 PHP
php中如何同时使用session和cookie来保存用户登录信息
Jul 05 PHP
PHP的拦截器实例分析
Nov 03 PHP
php使用ob_start()实现图片存入变量的方法
Nov 14 PHP
ThinkPHP中使用ajax接收json数据的方法
Dec 18 PHP
php通过文件头判断格式的方法
May 28 PHP
PHP递归算法的简单实例
Feb 28 PHP
PHP7 mongoDB扩展使用的方法分享
May 02 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
Nov 19 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
解析mysql 表中的碎片产生原因以及清理
2013/06/22 PHP
PHP怎么实现网站保存快捷方式方便用户随时浏览
2013/08/15 PHP
Yii数据库缓存实例分析
2016/03/29 PHP
深入理解PHP中的count函数
2016/05/31 PHP
centos7上编译安装php7以php-fpm方式连接apache
2018/11/08 PHP
javascript 无提示关闭窗口脚本
2009/08/17 Javascript
JS 事件绑定函数代码
2010/04/28 Javascript
javascript textContent与innerText的异同分析
2010/10/22 Javascript
javascript继承之为什么要继承
2012/11/10 Javascript
使用jQuery实现的网页版的个人简历(可换肤)
2013/04/19 Javascript
jquery遍历数组与筛选数组的方法
2013/11/05 Javascript
jQuery的DOM操作之删除节点示例
2014/01/03 Javascript
javascript继承的六大模式小结
2015/04/13 Javascript
简介AngularJS中$http服务的用法
2016/02/06 Javascript
Javascript 5种方法实现过滤删除前后所有空格
2016/06/22 Javascript
微信小程序 Windows2008 R2服务器配置TLS1.2方法
2016/12/05 Javascript
js Canvas实现的日历时钟案例分享
2016/12/25 Javascript
微信JS-SDK选取手机照片上传功能
2017/04/21 Javascript
vue axios用法教程详解
2017/07/23 Javascript
web前端vue实现插值文本和输出原始html
2018/01/19 Javascript
JavaScript ES6常用基础知识总结
2019/02/09 Javascript
百度小程序之间的页面通信过程详解
2019/07/18 Javascript
vue 实现cli3.0中使用proxy进行代理转发
2019/10/30 Javascript
详解Vue串联过滤器的使用场景
2020/04/30 Javascript
vue基于better-scroll实现左右联动滑动页面
2020/06/30 Javascript
html+vue.js 实现漂亮分页功能可兼容IE
2020/11/07 Javascript
[02:20]DOTA2中文配音宣传片
2013/05/22 DOTA
Python统计纯文本文件中英文单词出现个数的方法总结【测试可用】
2018/07/25 Python
对python数据切割归并算法的实例讲解
2018/12/12 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
2020/08/04 Python
雅诗兰黛(Estee Lauder)英国官方网站:世界顶级化妆品牌
2016/12/29 全球购物
越南电子产品购物网站:FPT Shop
2017/12/02 全球购物
服装设计师职业生涯规划范文
2014/02/28 职场文书
跑操口号
2014/06/12 职场文书
婚庆开业庆典主持词
2015/06/30 职场文书
springboot为异步任务规划自定义线程池的实现
2022/06/14 Java/Android