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


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实现图象锐化代码
Jun 14 PHP
PHP输出数组中重名的元素的几种处理方法
Sep 05 PHP
PHP 字符串长度判断效率更高的方法
Mar 02 PHP
Codeigniter实现多文件上传并创建多个缩略图
Jun 12 PHP
destoon实现调用图文新闻的方法
Aug 21 PHP
举例详解PHP脚本的测试方法
Aug 05 PHP
PHP常用技巧汇总
Mar 04 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
Mar 18 PHP
PHP编写登录验证码功能 附调用方法
May 19 PHP
PHP基于mssql扩展远程连接MSSQL的简单实现方法
Oct 08 PHP
laravel 使用事件系统统计浏览量的实现
Oct 16 PHP
thinkphp5.1框架模板赋值与变量输出示例
May 25 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中的integer类型使用分析
2010/07/27 PHP
用PHP的超级变量$_POST获取HTML表单(HTML Form) 数据
2011/05/07 PHP
PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
2014/05/04 PHP
跟我学Laravel之请求(Request)的生命周期
2014/10/15 PHP
10个实用的PHP正则表达式汇总
2014/10/23 PHP
JavaScript开发时的五个注意事项
2007/12/08 Javascript
js 无提示关闭浏览器页面的代码
2010/03/09 Javascript
关于onScroll事件在IE6下每次滚动触发三次bug说明
2011/09/21 Javascript
js 实现日期灵活格式化的小例子
2013/07/14 Javascript
js实现class样式的修改、添加及删除的方法
2015/01/20 Javascript
JavaScript基本的输出和嵌入式写法教程
2015/10/20 Javascript
轻松学习jQuery插件EasyUI EasyUI创建RSS Feed阅读器
2015/11/30 Javascript
基于JavaScript实现五子棋游戏
2020/08/26 Javascript
微信小程序如何获取用户手机号
2018/01/26 Javascript
基于vue v-for 循环复选框-默认勾选第一个的实现方法
2018/03/03 Javascript
Vue隐藏显示、只读实例代码
2018/07/18 Javascript
VUE 实现动态给对象增加属性,并触发视图更新操作示例
2019/11/29 Javascript
nodejs+koa2 实现模仿springMVC框架
2020/10/21 NodeJs
[06:36]吞吞映像top1
2014/06/20 DOTA
[01:00]选手抵达华西村 整装待发备战2016国际邀请赛中国区预选赛
2016/06/25 DOTA
python实现绘制树枝简单示例
2014/07/24 Python
python中subprocess批量执行linux命令
2018/04/27 Python
对python 读取线的shp文件实例详解
2018/12/22 Python
pyinstaller打包opencv和numpy程序运行错误解决
2019/08/16 Python
python实现智能语音天气预报
2019/12/02 Python
python函数不定长参数使用方法解析
2019/12/14 Python
浅谈Pycharm的项目文件名是红色的原因及解决方式
2020/06/01 Python
Django-celery-beat动态添加周期性任务实现过程解析
2020/11/26 Python
详解HTML5 canvas绘图基本使用方法
2018/01/29 HTML / CSS
Canvas 文本转粒子效果的实现代码
2019/02/14 HTML / CSS
C#面试题
2016/05/06 面试题
普师专业个人自荐信范文
2013/11/26 职场文书
酒店管理专业自荐信
2014/05/23 职场文书
经营理念口号
2014/06/21 职场文书
婚前协议书范本两则
2014/10/16 职场文书
图书馆义工感想
2015/08/07 职场文书