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

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

0
回复
1605
查看
[复制链接]

1

主题

2

帖子

2

积分

1°伸手党

Rank: 2

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


" y) u# c& Y$ x: Q; u& s
4 P/ F- U+ k$ j- I o7 l; l

& j A8 M, L9 W' J9 z! h) K6 E 1 B, t) [4 D! b. d& H* b5 W$ r

% H5 O! ^* E5 B8 l, |  

" p1 x* J# f% V: u- i3 f

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

8 {; e, N, _. r3 T

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

2 o9 K7 Z- t: c6 X

& L3 B- a6 x$ |0 Q6 V! ~( ^# a   案例一:外调5条Discuz流派资讯栏目保举文章(按发表时间降序分列)

5 p2 o' t- }; }* V

6 D* k6 n8 x2 P8 E   源码如下:

8 }0 X% V# f: G: V4 U

. L q5 x4 i+ J! Q! V   $index_bbs_new=array();

, d& `/ K* A2 Q4 J/ U+ D8 W7 Z

2 p1 K3 U @% S6 \, Y% h4 t% t( q   $bbs_sql="SELECT aid,title,username FROM `pre_portal_article_title` where catid=1 and tag=128 order by dateline desc limit 0,5";

( S9 K _' @7 _% i5 i$ b! N8 G! b

* b. ^, l T$ k- n9 l c   $b=$db->query($bbs_sql);

6 B5 O; d' y5 X6 e9 x' O

3 z- [. ?0 K6 ?   while($req=$db->fetch_array($b))

1 \ k9 w) N/ B, g: T- C

) w2 f4 X8 _9 u1 N K X. j   {

! S, Y8 O# W) _- k$ o6 L

% V, }8 n, `: g* @   $req['aid'] = $req['aid'];

; L0 a: K& ?( B" W

) W$ w- Y, q. Y0 t" t   $req['title'] = $req['title'];

+ m' G7 P3 P5 @3 V% k

t$ w: K2 N7 p   $req['username'] = $req['username'];

7 o6 p) R, }* P' D( J5 Q: E( l' v

% U" g' c4 n: Y   $req['url'] = "bbs/portal.php?mod=view&aid=$req[aid]";

, u8 f8 B& q7 W* L$ H* {2 T9 ^

. F& W" k+ [) O5 D7 x   $index_bbs_new[] = $req;

1 V5 I# I5 [5 f$ [) a

$ E% u. L' o: B1 e2 E2 x7 W* o% Q   }

: I7 u* E9 G/ D

/ z0 ]* |, |* Y( E! K* g5 z   SQL源码表明:上面的sql语句中查询语句最根本的了,那就是:

, S' i% T7 |* i$ v2 W. u

' D6 h) {/ Y6 h   select <字段名1>,<字段名2>,.... from 表名(假如是数据库间调用请用数据库名.表名) where 条件

2 Y- t7 C$ X. a4 o/ {( F. ?

* z) I# P0 m m! \7 b3 l4 N3 O   上面的字段我们可以查询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)。

6 z9 i K1 v( V+ H

) X/ n6 Y$ F6 M$ a   实例二:调用论坛最新英华帖5条(这个Discuz背景调用有)

: W8 l. k* b- H1 E- v5 P% H

; H! J6 r7 J; Q+ N3 r   调用语句如下(固然样式是取自我做的这个页面),源码如下

7 ^: {0 ], w) A* a, k/ g

( `( l7 m) H7 r) f0 }   $index_bbs=array();

% c* g" S2 @" i& b

1 ]5 G3 C* @! g3 h8 B   $bbs_sql="SELECT tid,subject,author FROM `pre_forum_thread` where digest>0 order by dateline desc limit 0,5";

. E. K9 {2 }, }/ y

7 u+ n! @% z5 h" x) K# c   $b=$db->query($bbs_sql);

. X: Q3 {" [* Y% S

! H/ r, j+ F, n' i- u+ [# L   while($req=$db->fetch_array($b))

6 F3 t$ V2 r) u z

) V5 Z" N' N3 ]% U   {

( n& U( ~5 d& ]/ H, _

, O. f. L7 y5 }' ^- C/ N   $req['tid'] = $req['tid'];

' m8 ~7 b# f0 N1 c) o* m; E7 `) g

* M/ f7 U3 F# P5 k" s( t   $req['subject'] = $req['subject'];

& \7 p# d1 @ D5 `& i7 [7 n9 e

; b* ]7 l- W0 q( Y0 w' @   $req['author'] = $req['author'];

% T9 V8 @' y& [# Y4 L A2 [

2 e% S1 Z5 f' I' ^   $req['url'] = "bbs/forum.php?mod=viewthread&tid=$req[tid]";

) l1 y6 D* R9 S" W5 }: B0 Y

5 \: L0 ?; s" e" Y4 }7 a) {   $index_bbs[] = $req;

' l! Z' w2 k/ V6 a' h" W4 ]

! _1 b: W$ v# s8 o, E t- c( I+ v   }

5 _4 G/ W6 |' F8 o

4 u7 W. S, i- x5 P2 A' g3 A2 b   有了实例一的表明,这里的语句各人查了数据辞书就会懂意思的。

6 V) W. q7 v5 \

3 O- @# ]/ X/ V) o   本文泉源:http://www.cqsihan.com(转载请注明出处!)

$ `8 f- a% J8 F , w3 Y; R7 b/ F6 L! \4 D# n0 M
: d0 h) u6 Y9 k/ e , w, Q% o. m! z; q; N( @
网站简介

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