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


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 相关文章推荐
手把手教你使用DedeCms的采集的图文教程
Mar 11 PHP
PHP6 mysql连接方式说明
Feb 09 PHP
PHP 读取大文件的X行到Y行内容的实现代码
Jun 24 PHP
遭遇php的in_array低性能问题
Sep 17 PHP
php 问卷调查结果统计
Oct 08 PHP
PHP 二维数组和三维数组的过滤
Mar 16 PHP
PHP连接数据库实现注册页面的增删改查操作
Mar 27 PHP
Yii中srbac权限扩展模块工作原理与用法分析
Jul 14 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
Dec 15 PHP
php面向对象的用户登录身份验证
Jun 08 PHP
thinkPHP中U方法加密传递参数功能示例
May 29 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
Nov 23 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 adodb连接mssql解决乱码问题
2009/06/12 PHP
Warning: session_destroy() : Trying to destroy uninitialized sessionq错误
2011/06/16 PHP
php过滤HTML标签、属性等正则表达式汇总
2014/09/22 PHP
Joomla框架实现字符串截取的方法示例
2017/07/18 PHP
php设计模式之工厂方法模式分析【星际争霸游戏案例】
2020/01/23 PHP
jquery 获取json数据实现代码
2009/04/27 Javascript
ExtJS扩展 垂直tabLayout实现代码
2009/06/21 Javascript
基于jquery的滚动新闻列表
2010/06/19 Javascript
为radio类型的INPUT添加客户端脚本(附加实现JS来禁用onClick事件思路代码)
2010/11/11 Javascript
基于JQuery的浮动DIV显示提示信息并自动隐藏
2011/02/11 Javascript
用JavaScript实现动画效果的方法
2013/07/20 Javascript
jquery加载图片时以淡入方式显示的方法
2015/01/14 Javascript
jQuery插件formValidator自定义函数扩展功能实例详解
2015/11/25 Javascript
JQuery datepicker 用法详解
2015/12/25 Javascript
jQuery实现的网格线绘制方法
2016/06/20 Javascript
教你用十行node.js代码读取docx的文本
2017/03/08 Javascript
微信小程序之获取当前位置经纬度以及地图显示详解
2017/05/09 Javascript
详解vue-cli快速构建vue应用并实现webpack打包
2017/12/13 Javascript
通过JavaScript下载文件到本地的方法(单文件)
2019/03/17 Javascript
微信小程序 搜索框组件代码实例
2019/09/06 Javascript
基于python socketserver框架全面解析
2017/09/21 Python
PyQt5 如何让界面和逻辑分离的方法
2020/03/24 Python
python 实现任务管理清单案例
2020/04/25 Python
印度领先的在线时尚商店:Koovs
2016/08/28 全球购物
Chain Reaction Cycles芬兰:世界上最大的在线自行车商店
2017/12/06 全球购物
办公室驾驶员岗位职责
2013/11/15 职场文书
咨询公司各岗位职责
2013/12/02 职场文书
花坛标语大全
2014/06/30 职场文书
学生违反校规检讨书
2014/10/28 职场文书
后天观后感
2015/06/08 职场文书
2015年暑期社会实践方案
2015/07/14 职场文书
通讯稿范文
2015/07/22 职场文书
一次SQL如何查重及去重的实战记录
2022/03/13 MySQL
vue里使用create, mounted调用方法
2022/04/26 Vue.js
vue使用element-ui按需引入
2022/05/20 Vue.js