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


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 相关文章推荐
使用网络地址转换实现多服务器负载均衡
Oct 09 PHP
一个简洁的多级别论坛
Oct 09 PHP
php快速url重写 更新版[需php 5.30以上]
Apr 20 PHP
php全角字符转换为半角函数
Feb 07 PHP
PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
May 04 PHP
php操作xml入门之cdata区段
Jan 23 PHP
PHP中字符安全过滤函数使用小结
Feb 25 PHP
PHP中使用BigMap实例
Mar 30 PHP
PHP实现支付宝即时到账功能
Dec 21 PHP
thinkphp3.2嵌入百度编辑器ueditor的实例代码
Jul 13 PHP
ThinkPHP5+Layui实现图片上传加预览功能
Aug 17 PHP
详解阿里云视频直播PHP-SDK接入教程
Jul 09 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
咖啡常见的种类
2021/03/03 新手入门
改进的IP计数器
2006/10/09 PHP
PHP缩略图等比例无损压缩,可填充空白区域补充色
2011/06/10 PHP
php数组操作之键名比较与差集、交集赋值的方法
2014/11/10 PHP
PHP 常用时间函数资料整理
2016/10/22 PHP
PHP使用栈解决约瑟夫环问题算法示例
2017/08/27 PHP
基于jquery的网页SELECT下拉框美化代码
2010/10/28 Javascript
将string解析为json的几种方式小结
2010/11/11 Javascript
通过Jquery遍历Json的两种数据结构的实现代码
2011/01/19 Javascript
js+html5通过canvas指定开始和结束点绘制线条的方法
2015/06/05 Javascript
jQuery实现鼠标经过弹出提示信息的地图热点效果
2015/08/07 Javascript
JavaScript function函数种类详解
2016/02/22 Javascript
JS函数定义方式的区别介绍
2016/03/22 Javascript
jquery实现简单的banner轮播效果【实例】
2016/03/30 Javascript
Angular工具方法学习
2016/12/26 Javascript
微信小程序 下拉列表的实现实例代码
2017/03/08 Javascript
es6函数之尾调用优化实例分析
2020/04/25 Javascript
JS猜数字游戏实例讲解
2020/06/30 Javascript
[03:17]2014DOTA2 国际邀请赛中国区预选赛 四强专访
2014/05/23 DOTA
Python标准库笔记struct模块的使用
2018/02/22 Python
python图书管理系统
2020/04/05 Python
python中找出numpy array数组的最值及其索引方法
2018/04/17 Python
numpy中的delete删除数组整行和整列的实例
2018/05/09 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
2019/01/15 Python
Python爬虫使用浏览器cookies:browsercookie过程解析
2019/10/22 Python
python3实现单目标粒子群算法
2019/11/14 Python
django框架单表操作之增删改实例分析
2019/12/16 Python
HTML5新控件之日期和时间选择输入的实现代码
2018/09/13 HTML / CSS
SNIDEL官网:日本VIVI杂志人气少女第一品牌
2020/03/12 全球购物
自我鉴定怎么写
2013/12/05 职场文书
运动会广播稿200字
2014/01/15 职场文书
一年级班主任寄语
2014/01/19 职场文书
销售员岗位职责范本
2014/02/03 职场文书
雷锋精神演讲稿
2014/05/13 职场文书
my.ini优化mysql数据库性能的十个参数(推荐)
2021/05/26 MySQL
【海涛教你打DOTA】黑鸟第一视角解说
2022/04/01 DOTA