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

愿成你影

愿成你影

2016-01-29 14:47

为查询结果建立向后/向前按钮,为查询结果建立向后/向前按钮
  最近在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 &nbsp; 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 &nbsp; n";
}

// 检查是否为最后一页
if (!(($offset/$limit)==$pages) && $pages!=1) {
    // 如果不是,则给出向后链接
    $newoffset=$offset+$limit;
    print "<a href="$PHP_SELF?offset=$newoffset"NEXT</a<pn";
}

?  

  这些对你来说可能有些用。当然,你可能想要使HTML的输出更干净一些...  

  而且,请注意在$PHP_SELF后的链接只包含了$offset。如果你需要为查询的where条件传递参数的话, 你也需也需要把这些补在上面。   
展开更多 50%)
分享

猜你喜欢

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

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

点击DBGrid的Title对查询结果排序

编程语言 网络编程
点击DBGrid的Title对查询结果排序

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

实现分十页分向前十页向后十页的处理

PHP
实现分十页分向前十页向后十页的处理

mysql让存储结果分页用于复杂查询

编程语言 网络编程
mysql让存储结果分页用于复杂查询

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

数据库查询结果的动态排序(6)

SQLServer
数据库查询结果的动态排序(6)

数据库查询结果的动态排序(2)

SQLServer
数据库查询结果的动态排序(2)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

用PHP实现ODBC数据分页显示一例

用PHP实现ODBC数据分页显示一例

PHP用户指南-cookies部分

PHP用户指南-cookies部分
下拉加载更多内容 ↓