• 1534阅读
  • 3回复

最新“上一主题和下一主题” [复制链接]

上一主题 下一主题
离线linfuxue
 
只看楼主 倒序阅读 0 发表于: 2010-04-17
— 本帖被 江小邪 设置为精华(2010-06-02) —
这段代码放到qgmod.func.php下面:

#[根据所给ID获取上一篇,下一篇]
function GET_PREV_NEXT($id, $cateid = '') {
    global $DB,  $prefix;
    $wstr = '';
    if ($cateid)
    {
        $wstr .= "AND cateid='$cateid'";
    }
    $sql_prev = "SELECT * FROM ".$prefix."msg WHERE id < '$id' ".$wstr." ORDER BY id DESC LIMIT 1";
    $sql_next = "SELECT * FROM ".$prefix."msg WHERE id > '$id' ".$wstr." ORDER BY id ASC LIMIT 1";
    $rs = array();
    $rs[prev] = $DB->qgGetOne($sql_prev);
    $rs[next] = $DB->qgGetOne($sql_next);
    return $rs;
}


下面代码在模板里用来调用上一篇下一篇:
<!-- run:$pre_next = GET_PREV_NEXT($id) -->
上一篇:<a href="msg.php?id={:$pre_next[prev][id]}">{:$pre_next[prev][subject]}</a> - 下一篇:<a href="msg.php?id={:$pre_next[next][id]}">{:$pre_next[next][subject]}</a>
<!-- run:unset($pre_next) -->


三种类型调用:
<!-- run:$pre_next = GET_PREV_NEXT($id) -->这句调用上一篇下一篇的时候可以指定当前分类下也可以是全部文章,如下:
<!-- run:$pre_next = GET_PREV_NEXT($id) -->----全部文章中
<!-- run:$pre_next = GET_PREV_NEXT($id, $cateid) -->---当前分类下


注意:这个个我没加判断,如果没有数据会显示空,所以你加个判断吧.我觉得,如果你有时间的话,可以去研究下ET模板引擎,phpok用的那个。
企业网站建设、改版服务
交流QQ:173956518 
离线sammul

只看该作者 1 发表于: 2010-05-04
支持一下!
离线banaeib
只看该作者 2 发表于: 2010-07-17
$lone = $DB->qgGetOne("SELECT id,subject FROM ".$prefix."msg WHERE orderdate  <'".$rs[orderdate]."' AND cateid= ".$cateid." ORDER BY orderdate DESC LIMIT 1 ");

$none = $DB->qgGetOne("SELECT id,subject FROM ".$prefix."msg WHERE orderdate  >'".$rs[orderdate]."' AND cateid= ".$cateid." ORDER BY orderdate ASC LIMIT 1");

按orderdate  来排好一点...
离线139world
只看该作者 3 发表于: 2011-07-15
该方法有个BUG,如果后台分了产品列表、公告部分有信息的话,上一篇或者下一篇跳转,直接是针对所有分类所有信息的。能不能有选择性的针对某个栏目列表内的上一篇、下一篇?
快速回复
限100 字节
 
上一个 下一个