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


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 相关文章推荐
了解Joomla 这款来自国外的php网站管理系统
Mar 11 PHP
php 判断访客是否为搜索引擎蜘蛛的函数代码
Jul 29 PHP
PHP写的获取各搜索蜘蛛爬行记录代码
Aug 21 PHP
CodeIgniter基本配置详细介绍
Nov 12 PHP
PHP嵌套输出缓冲代码实例
May 12 PHP
CI框架文件上传类及图像处理类用法分析
May 18 PHP
PHP实现带重试功能的curl连接示例
Jul 28 PHP
php并发加锁示例
Oct 17 PHP
php mysql_list_dbs()函数用法示例
Mar 29 PHP
Laravel使用PHPQRCODE实现生成带有LOGO的二维码图片功能示例
Jul 07 PHP
PHP实现正则匹配所有括号中的内容
Jun 22 PHP
php文件上传原理与实现方法详解
Dec 20 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下通过file_get_contents的代理使用方法
2011/02/16 PHP
php数据库抽象层 PDO
2011/05/07 PHP
ThinkPHP无限级分类原理实现留言与回复功能实例
2014/10/31 PHP
windows下安装php的memcache模块的方法
2015/04/07 PHP
利用PHPExcel实现Excel文件的写入和读取
2017/04/26 PHP
JQuery的一些小应用收集
2010/03/27 Javascript
js使用removeChild方法动态删除div元素
2014/08/01 Javascript
jquery滚动到顶部底部代码
2015/04/20 Javascript
使用AngularJS创建单页应用的编程指引
2015/06/19 Javascript
jQuery实现平滑滚动的标签分栏切换效果
2015/08/28 Javascript
每天一篇javascript学习小结(Array数组)
2015/11/11 Javascript
js仿QQ中对联系人向左滑动、滑出删除按钮的操作
2016/04/07 Javascript
浅谈JavaScript的闭包函数
2016/12/08 Javascript
JavaScript轮播图简单制作方法
2017/02/20 Javascript
jQuery实现div跟随鼠标移动
2020/08/20 jQuery
详解VScode编辑器vue环境搭建所遇问题解决方案
2019/04/26 Javascript
生产制造追溯系统之再说条码打印
2019/06/03 Javascript
[01:21]辉夜杯战队访谈宣传片—CDEC
2015/12/25 DOTA
[01:01:04]2018DOTA2亚洲邀请赛 4.5 淘汰赛 OpTic vs TNC 第一场
2018/04/06 DOTA
[01:11:11]Alliance vs RNG 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
python在指定目录下查找gif文件的方法
2015/05/04 Python
使用Python发送各种形式的邮件的方法汇总
2015/11/09 Python
Python 实现某个功能每隔一段时间被执行一次的功能方法
2018/10/14 Python
解决使用export_graphviz可视化树报错的问题
2019/08/09 Python
Python调用REST API接口的几种方式汇总
2020/10/19 Python
CSS3 text-shadow实现文字阴影效果
2016/02/24 HTML / CSS
财务会计专业应届毕业生求职信
2013/10/18 职场文书
小学后勤管理制度
2014/01/14 职场文书
县级文明单位申报材料
2014/05/23 职场文书
党员群众路线教育实践活动剖析材料
2014/10/10 职场文书
公司酒会主持词
2015/07/02 职场文书
小学总务工作总结
2015/08/13 职场文书
详解mysql三值逻辑与NULL
2021/05/19 MySQL
python flask开发的简单基金查询工具
2021/06/02 Python
MySQL删除和插入数据很慢的问题解决
2021/06/03 MySQL
Python中的tkinter库简单案例详解
2022/01/22 Python