当前位置:首页 >  站长 >  建站经验 >  正文

两个用SQL语句实现Discuz数据外部调用的实例

 2013-05-17 22:53  来源: 思翰   我来投稿 撤稿纠错

  阿里云优惠券 先领券再下单

 

不得不说Discuz真的非常强大,以至于不懂任何技术的人都可以操作它,菜鸟都可以用Discuz自带的DIY功能实现一些基本的数据调用及风格。说到数据调用,使用过Discuz的站长都知道它后台自带js数据外调功能,很多站长在实现数据外调时直接拿这个自带功能去实现。但我觉得自带虽然好但是有那么点缺陷:第一,据说js调用不是太好,呵呵;第二,自带的调用方式就是内置的那些,也就是不可能满足你很多需求。

所以今天我要讲的就是用SQL语句实现数据外调,然后再用PHP脚本调用数据到前端实现。我是一个非专业的选手,对很多东西都有一点了解但不精通,唯独数据库还算可以。所以今天我们只讲实现功能,至于前端的一个样式风格大家自己去看着办吧。

案例一:外调5条Discuz门户资讯栏目推荐文章(按发表时间降序排列)

代码如下:

$index_bbs_new=array();

$bbs_sql="SELECT aid,title,username FROM `pre_portal_article_title` where catid=1 and tag=128 order by dateline desc limit 0,5";

$b=$db->query($bbs_sql);

while($req=$db->fetch_array($b))

{

$req['aid'] = $req['aid'];

$req['title'] = $req['title'];

$req['username'] = $req['username'];

$req['url'] = "bbs/portal.php?mod=view&aid=$req[aid]";

$index_bbs_new[] = $req;

}

SQL代码解释:上面的sql语句中查询语句最基本的了,那就是:

select <字段名1>,<字段名2>,.... from 表名(如果是数据库间调用请用数据库名.表名) where 条件

上面的字段我们可以查询Discuz公开的数据词典,就在表pre_portal_article_title中aid表示文章的唯一ID,title表示文章的标题,username表示发布文章的用户的用户名。上面这条语句翻译成我们通常交流就语句就是,在表pre_portal_article_title中查询文章ID、文章标题、文章作者,查询条件是栏目ID为1 (catid=1),文章标签为推荐( tag=128),按照发布时间降序排序(order by dateline desc)",记录数为5条( limit 0,5)。

实例二:调用论坛最新精华帖5条(这个Discuz后台调用有)

调用语句如下(当然样式是取自我做的这个页面),代码如下

$index_bbs=array();

$bbs_sql="SELECT tid,subject,author FROM `pre_forum_thread` where digest>0 order by dateline desc limit 0,5";

$b=$db->query($bbs_sql);

while($req=$db->fetch_array($b))

{

$req['tid'] = $req['tid'];

$req['subject'] = $req['subject'];

$req['author'] = $req['author'];

$req['url'] = "bbs/forum.php?mod=viewthread&tid=$req[tid]";

$index_bbs[] = $req;

}

有了实例一的解释,这里的语句大家查了数据词典就会懂意思的。

本文来源:(转载请注明出处!)

申请创业报道,分享创业好点子。点击此处,共同探讨创业新机遇!

相关文章

热门排行

信息推荐