腾讯云网站解决方案帮您轻松应对建站成本高/网络不稳等常见问题

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

2
回复
1995
查看
[复制链接]

1

主题

15

帖子

2

积分

1°伸手党

Rank: 2

积分
2
发表于 19-4-24 13:37:35 | 显示全部楼层 |阅读模式         


! Y: e4 l, e4 c U" c! t. x
5 h) W% X% {# T8 T

# X, d/ H! q# ]9 U0 n8 \ $ z8 b2 b7 ?. P$ P: d; J

8 n' [. P: ~0 t5 ^7 ^% I; N  

& T$ m7 [$ r0 @

6 n: b4 i5 m5 x' q   不得不说Discuz真的非常强盛,以至于不懂任何技能的人都可以操纵它,菜鸟都可以用Discuz自带的DIY功能实现一些根本的数据调用及风格。说到数据调用,利用过Discuz的站长都知道它背景自带js数据外调功能,许多站长在实现数据外调时直接拿这个自带功能去实现。但我以为自带固然好但是有那么点缺陷:第一,听说js调用不是太好,呵呵;第二,自带的调用方式就是内置的那些,也就是不大概满意你许多需求。

7 Q1 ` A% b" B+ |6 o" N

- |9 T' ]+ P, ?6 u/ n   以是本日我要讲的就是用SQL语句实现数据外调,然后再用PHP脚本调用数据到前端实现。我是一个非专业的选手,对许多东西都有一点相识但不醒目,唯独数据库还算可以。以是本日我们只讲实现功能,至于前端的一个样式风格各人本身去看着办吧。

: [- r8 u1 S( j0 x$ O( U

& A; w5 q7 A4 |$ M* R/ J   案例一:外调5条Discuz流派资讯栏目保举文章(按发表时间降序分列)

: \8 i! T T/ X! Q7 q

. Q: ~: u8 C' W   源码如下:

. [( T1 r* x. M- }8 H, X

2 h8 a1 N( j+ f, {; Q" @   $index_bbs_new=array();

' b* m0 M& I8 z( r- I

. S$ n( m( I$ d% H- k$ g   $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% k+ _4 L/ m7 Y

$ R, e1 }5 R6 d7 a; c   $b=$db->query($bbs_sql);

7 i1 B; J% p, P4 u; B+ U5 _

: o* g3 y: C: t6 C3 n+ M% c   while($req=$db->fetch_array($b))

3 m! r l: K5 ]4 {

1 P9 ]7 B" O W$ c1 z) s   {

$ \1 Q. q, k! A% q. B

4 b8 D1 Q' Z, T' X8 M/ B& B" M   $req['aid'] = $req['aid'];

5 d, l& {, s' G/ Z0 z4 R

; U- D5 S& O, O* S3 w   $req['title'] = $req['title'];

( F+ [- j$ ^% S; O5 T5 Y" M; B# o

( Y) s+ G8 G+ u- U/ R. y. O   $req['username'] = $req['username'];

& w, d9 E6 o: l g

4 M3 z. m& b6 [1 g   $req['url'] = "bbs/portal.php?mod=view&aid=$req[aid]";

$ ]/ V! T k; c! p3 g

( L1 Q1 s L$ d$ |7 Q- [   $index_bbs_new[] = $req;

/ A# A7 s, ]* S0 u2 Z) M

: l# t+ O; }2 z. j   }

3 r. b5 J6 r! z# e+ R. c" v

+ b2 s: a) P1 v7 y. |* b   SQL源码表明:上面的sql语句中查询语句最根本的了,那就是:

- V+ Y8 u; c% ~9 r

4 {3 @$ k- U! F   select <字段名1>,<字段名2>,.... from 表名(假如是数据库间调用请用数据库名.表名) where 条件

+ S) N* W; r- \! z, A& ]

1 Y7 l8 n" o* Z. l% \. Y. X   上面的字段我们可以查询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 b% o5 c! E) p$ m; }

8 i1 F& J: `1 R3 O% Z   实例二:调用论坛最新英华帖5条(这个Discuz背景调用有)

" U& p, Y% v8 q4 Q

( q2 U" w0 o! e   调用语句如下(固然样式是取自我做的这个页面),源码如下

4 f2 b% l3 a7 ]& X8 O# [: P

& P9 `/ ? V& i% C, H K# T+ z   $index_bbs=array();

2 P3 z0 x6 E. V# K4 r+ n Y

5 x9 `, E: g# [ \4 S6 W& v1 N   $bbs_sql="SELECT tid,subject,author FROM `pre_forum_thread` where digest>0 order by dateline desc limit 0,5";

2 ?% z$ ^2 w- V! o

" V( a& v J. u, O9 h' m   $b=$db->query($bbs_sql);

9 p2 M* m" }& b+ s0 Z

. u c( o' n1 {   while($req=$db->fetch_array($b))

5 h9 p2 f& R! @ b3 C, y3 d3 t! I+ E

- I1 B* \* u2 E/ t) R* \# u   {

. G+ ]5 r4 p* G) ?/ h7 A

2 u; b( T% ]6 r2 Z: i" W   $req['tid'] = $req['tid'];

$ Q+ W' k) `, O* q, g" W4 i' O

9 k) c3 D. }6 r   $req['subject'] = $req['subject'];

0 b) a* c' Z6 Y# k

% q, j# g2 A# f* S7 C6 G$ m$ s7 N   $req['author'] = $req['author'];

. W7 V5 n8 i ]; E& R9 v$ U/ G: o0 d

( T5 @. X( G5 C5 p: S9 C   $req['url'] = "bbs/forum.php?mod=viewthread&tid=$req[tid]";

5 p6 e2 \* w1 h& N( z* @

; ~3 H9 v5 u5 H   $index_bbs[] = $req;

( l7 n6 Y4 a! ~5 q' P- X5 v" n

2 d8 X5 P0 @9 G   }

! H: q8 `5 t* a$ J0 u

. w0 d I& J% }4 @   有了实例一的表明,这里的语句各人查了数据辞书就会懂意思的。

! I+ Z: W- s% \3 X6 O

+ A, p: j8 I4 U4 f   本文泉源:http://www.cqsihan.com(转载请注明出处!)

0 q/ e2 v( j9 x0 A) _" D4 F ' U/ {; m4 J, V4 Z" N+ z
6 }& e c- Y/ c- r8 _2 v ' _& \2 Q& a; N: J

0

主题

9

帖子

20

积分

1°伸手党

Rank: 2

积分
20
发表于 19-12-14 11:54:41 | 显示全部楼层         
支持一下
回复

使用道具 举报

0

主题

9

帖子

4

积分

1°伸手党

Rank: 2

积分
4
发表于 20-1-16 16:12:36 | 显示全部楼层         
不知该说些什么。。。。。。就是谢谢
回复

使用道具 举报

网站简介

球球发,是一家 Discuz! 商业插件、风格模板、网站源码、 Discuz!运营维护技术等于一体的交流分享网站,全站95%的资源都是免费下载,对于资源我们是每天更新,每个亲测资源最新最全---球球发(如果我们有侵犯了您权益的资源请联系我们删除