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


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 相关文章推荐
编写漂亮的代码 - 将后台程序与前端程序分开
Apr 23 PHP
10 个经典PHP函数
Oct 17 PHP
php定时计划任务与fsockopen持续进程实例
May 23 PHP
ThinkPHP的I方法使用详解
Jun 18 PHP
php相对当前文件include其它文件的方法
Mar 13 PHP
合格的PHP程序员必备技能
Nov 13 PHP
yii2分页之实现跳转到具体某页的实例代码
Jun 02 PHP
使用Yii2实现主从数据库设置
Nov 20 PHP
如何打开php的gd2库
Feb 09 PHP
php正则判断是否为合法身份证号的方法
Mar 16 PHP
thinkphp 抓取网站的内容并且保存到本地的实例详解
Aug 25 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
Mar 28 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相关资料
2006/10/09 PHP
php中文验证码实现方法
2015/06/18 PHP
屏蔽PHP默认设置中的Notice警告的方法
2016/05/20 PHP
比较完整的微信开发php代码
2016/08/02 PHP
学习js所必须要知道的一些
2007/03/07 Javascript
关于juqery radio写法的兼容性问题(新老版本jquery)
2010/06/14 Javascript
Json实现异步请求提交评论无需跳转其他页面
2014/10/11 Javascript
jquery实现的代替传统checkbox样式插件
2015/06/19 Javascript
javascript实现鼠标点击页面 移动DIV
2016/12/02 Javascript
canvas 弹幕效果(实例分享)
2017/01/11 Javascript
js实现符合国情的日期插件详解
2017/01/19 Javascript
详解AngularJs HTTP响应拦截器实现登陆、权限校验
2017/04/11 Javascript
基于Datatables跳转到指定页的简单实例
2017/11/09 Javascript
JavaScript 数组去重并统计重复元素出现的次数实例
2017/12/14 Javascript
JS实现简单的浮动碰撞效果示例
2017/12/28 Javascript
如何编写一个d.ts文件的步骤详解
2018/04/13 Javascript
解决Angular2 router.navigate刷新页面的问题
2018/08/31 Javascript
自定义javascript验证框架示例【附源码下载】
2019/05/31 Javascript
koa2服务端使用jwt进行鉴权及路由权限分发的流程分析
2019/07/22 Javascript
react使用CSS实现react动画功能示例
2020/05/18 Javascript
js实现QQ邮箱邮件拖拽删除功能
2020/08/27 Javascript
[04:48]DOTA2上海特锦赛小组赛第三日 TOP10精彩集锦
2016/02/28 DOTA
Python文件夹与文件的相关操作(推荐)
2016/07/25 Python
Python3实现的简单验证码识别功能示例
2018/05/02 Python
python爬虫之urllib3的使用示例
2018/07/09 Python
Python 3.8新特征之asyncio REPL
2019/05/28 Python
python提取log文件内容并画出图表
2019/07/08 Python
Python写出新冠状病毒确诊人数地图的方法
2020/02/12 Python
在css3中background-clip属性与background-origin属性的用法介绍
2012/11/13 HTML / CSS
英国领先的电动可调床制造商:Laybrook
2019/12/26 全球购物
护理自我鉴定范文
2013/10/06 职场文书
企业诚信承诺书
2014/05/23 职场文书
春节超市活动方案
2014/08/14 职场文书
开会通知
2015/04/20 职场文书
python3 删除所有自定义变量的操作
2021/04/08 Python
win10滚动条自动往上跑怎么办?win10滚动条自动往上跑的解决方法
2022/08/05 数码科技