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

时间:2010-01-16 10:37:39   来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:。        因为每种应用都是不同的,这样我使用了一些通用的语句进行MySQL查询处理。TABLE名应该替换成你的 实际表名。YOUR CONDITIONAL HERE应该替换成你的where 条件,并且WHATEVER应该替换成你希望对结果进 行排序的字段(如果你的应用需要降序排列,不要忘记加上DESC)。      <?php    &...
  正文:

最近在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条件传递参数的话, 你也需也需要把这些补在上面。


来源:http://www.002pc.com/master/College/Programming/PHP/11938.html

收藏到:

关于《为查询结果建立向后/向前按钮》文章的评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面

随机文章

    SQL Error: select * from ***_ecms_article where classid='86' and checked=1 order by rand() limit 10

顶出来的热门

    SQL Error: select * from ***_ecms_article where classid='86' and checked=1 order by diggtop desc,id desc limit 10
站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td