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


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动态生成虚拟现实VRML网页
Oct 09 PHP
PHP系列学习之日期函数使用介绍
Aug 18 PHP
Php中使用Select 查询语句的实例
Feb 19 PHP
php使用多个进程同时控制文件读写示例
Feb 28 PHP
适用于抽奖程序、随机广告的PHP概率算法实例
Apr 09 PHP
PHP获取mysql数据表的字段名称和详细信息的方法
Sep 27 PHP
php数组查找函数总结
Nov 18 PHP
CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)
Sep 01 PHP
php实现支持中文的文件下载功能示例
Aug 30 PHP
Laravel中unique和exists验证规则的优化详解
Jan 28 PHP
PHP命名空间简单用法示例
Dec 28 PHP
PHP反射学习入门示例
Jun 14 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隐藏IP地址后两位显示为星号的方法
2014/11/21 PHP
PHP简单字符串过滤方法示例
2016/09/04 PHP
Javascript 读后台cookie代码
2008/09/15 Javascript
js onpropertychange输入框 事件获取属性
2009/03/26 Javascript
yepnope.js 异步加载资源文件
2011/09/08 Javascript
查看源码的工具 学习jQuery源码不错的工具
2011/12/26 Javascript
JQUERY 获取IFrame中对象及获取其父窗口中对象示例
2013/08/19 Javascript
javascript中2个感叹号的用法实例详解
2014/09/04 Javascript
浅谈Javascript 数组与字典
2015/01/29 Javascript
javascript编写实用的省市选择器
2015/02/12 Javascript
深入浅出分析javaScript中this用法
2015/05/09 Javascript
谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
2015/10/01 Javascript
JS实现新浪博客左侧的Blog管理菜单效果代码
2015/10/22 Javascript
vue.js默认路由不加载linkActiveClass问题的解决方法
2017/12/11 Javascript
Bootstrap模态对话框用法简单示例
2018/08/31 Javascript
vue-router权限控制(简单方式)
2018/10/29 Javascript
vue 左滑删除功能的示例代码
2019/01/28 Javascript
微信小程序文章详情页跳转案例详解
2019/07/09 Javascript
三步实现ionic3点击退出app程序
2019/09/17 Javascript
javascript Canvas动态粒子连线
2020/01/01 Javascript
基于javascript处理二进制图片流过程详解
2020/06/08 Javascript
JavaScript Dom实现轮播图原理和实例
2021/02/19 Javascript
python实现数通设备tftp备份配置文件示例
2014/04/02 Python
python爬虫获取新浪新闻教学
2018/12/23 Python
完美解决pycharm导入自己写的py文件爆红问题
2020/02/12 Python
利用CSS3制作简单的3d半透明立方体图片展示
2017/03/25 HTML / CSS
CSS3中伪元素::before和::after的用法示例
2017/09/18 HTML / CSS
阿迪达斯西班牙官方网站:adidas西班牙
2016/07/21 全球购物
英国行业制服供应商:Alexandra
2019/09/14 全球购物
波兰多品牌运动商店:StreetStyle24.pl
2020/09/22 全球购物
销售人员个人求职信
2013/09/26 职场文书
我与祖国共奋进演讲稿
2014/09/13 职场文书
学校联谊协议书
2014/09/16 职场文书
2015年小学开学寄语
2015/02/27 职场文书
Python制作动态字符画的源码
2021/08/04 Python
游戏《铁拳》动画化!2022年年内播出
2022/03/21 日漫