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


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 09 PHP
php自动给文章加关键词链接的函数代码
Nov 29 PHP
PHP实现今天是星期几的几种写法
Sep 26 PHP
PHP反向代理类代码
Aug 15 PHP
实用的PHP带公钥加密类分享(每次加密结果都不一样哦)
Aug 20 PHP
PHP实现格式化文件数据大小显示的方法
Jan 03 PHP
PHP判断上传文件类型的解决办法
Oct 20 PHP
关于WordPress的SEO优化相关的一些PHP页面脚本技巧
Dec 10 PHP
PHP文件缓存smarty模板应用实例分析
Feb 26 PHP
利用PHP生成CSV文件简单示例
Dec 21 PHP
php实时倒计时功能实现方法详解
Feb 27 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 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和ACCESS写聊天室(七)
2006/10/09 PHP
PHP函数addslashes和mysql_real_escape_string的区别
2014/04/22 PHP
php编译安装php-amq扩展简明教程
2016/06/25 PHP
PHP7变量处理机制修改
2021/03/09 PHP
EXTJS记事本 当CompositeField遇上RowEditor
2011/07/31 Javascript
js倒计时小程序
2013/11/05 Javascript
教你如何自定义百度分享插件以及bshare分享插件的分享按钮
2014/06/20 Javascript
jQuery操作DOM之获取表单控件的值
2015/01/23 Javascript
js的flv视频播放器插件使用方法
2015/06/23 Javascript
6种javascript显示当前系统时间代码
2015/12/01 Javascript
Javascript实现图片不间断滚动的代码
2016/06/22 Javascript
BootStrap整体框架之基础布局组件
2016/12/15 Javascript
js es6系列教程 - 基于new.target属性与es5改造es6的类语法
2017/09/02 Javascript
React Native 截屏组件的示例代码
2017/12/06 Javascript
vue2.0 下拉框默认标题设置方法
2018/08/22 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
2018/08/28 Javascript
浅谈angularJs函数的使用方法(大小写转换,拷贝,扩充对象)
2018/10/08 Javascript
angular学习之动态创建表单的方法
2018/12/07 Javascript
微信小程序系列之自定义顶部导航功能
2019/05/21 Javascript
layui 上传插件 带预览 非自动上传功能的实例(非常实用)
2019/09/23 Javascript
JavaScript 反射和属性赋值实例解析
2019/10/28 Javascript
JS实现关闭小广告特效
2021/01/29 Javascript
vue任意关系组件通信与跨组件监听状态vue-communication
2020/10/18 Javascript
[45:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第二场 6.2
2018/06/04 DOTA
Python中安装easy_install的方法
2018/11/18 Python
Python 正则表达式 re.match/re.search/re.sub的使用解析
2019/07/22 Python
Django前后端分离csrf token获取方式
2020/12/25 Python
css3实现的下拉菜单效果示例
2014/01/22 HTML / CSS
使用纯 CSS 创作一个脉动 loader效果的源码
2018/09/28 HTML / CSS
欧洲最大的笔和书写专家:The Pen Shop
2017/03/19 全球购物
函授本科毕业生自我鉴定
2013/10/16 职场文书
祖国在我心中的演讲稿
2014/05/04 职场文书
抵押贷款承诺书
2014/05/30 职场文书
汽车广告策划方案
2014/05/31 职场文书
2015年教师节活动总结
2015/03/20 职场文书
MongoDB误操作后使用oplog恢复数据
2022/04/11 MongoDB