您的位置:首頁 > 站長 > 網站資源 > 正文

帝國cms調用同一服務器不同數據庫的Discuz帖子教程

2018-09-17 17:17:02來源:然貓網編輯:發財貓 我要投稿 瀏覽:

A-A+

現在大多數資訊類系統,一般站長都比較青睞php、mysql組合,這類cms系統中以dede和帝國更為普及,在帝國系統中調用論壇數據,這個應用需求比較常見,cms和論壇系統使用同一數據庫時,這樣調用時,使用帝國論壇上提供的方法,如果是dede網站系統,使用dede的后臺向導就可以直接實現,但如果cms和論壇使用不同的數據庫,前提是在同一服務器、同一mysql服務環境下,就不能直接調用了,這涉及到mysql用戶的多數據庫權限,以及mysql的跨數據庫查詢問題。

這個問題很久以前就曾經多次在帝國論壇咨詢過,但沒有具體實施方法,由于平常也不以帝國類網站為生,因此對這些問題還是建立在考慮可能性的層面,今日朋友又提此事,覺得也不算大的難題,就稍費點時間試一下。結果,完美成功。過程如下:

假設:帝國cms數據庫名為:ecms,用戶名為:ecms_user,discuz論壇數據庫名為:discuz,用戶名為:discuz_user

要在帝國網站中調用discuz論壇的當天最新貼,首先為discuz論壇添加帝國網站系統的用戶訪問權限,這里只添加查詢(select)權限,確保安全。用root登陸phpmysql后,直接在sql中運行以下語句:

GRANT select on discuz.* to ecms_user;

這時就可以在帝國模板中添加靈動標簽的論壇當天最新貼查詢了:

[e:loop={"select tid,subject from discuz.cdb_threads order by tid desc limit 10",10,24,0}]

[/e:loop]

數據更新后查看,數據就生成了,這數據可是實在的標題和鏈接調用,不是一般的discuz論壇的js數據調用,不管對于頁面加載速度和網站的優化來說,都有好處。

注意上述語句的:

如果你沒有加載論壇的偽靜態效果,要替換為:

不然打開鏈接時就要出現“404頁面”了。好這樣就成功調用了。

調用同一數據庫下的discuz帖子

如果是,那么就好辦了,請參考下方調用標簽,照著搬到自己網站即可。

調用某版塊最新帖子:(紅色部分分別為:“DZ數據庫名、版塊ID、調用條數、帖子ID、標題字數”):

[e:loop={"select tid,subject,dateline from 數據庫名.表前綴_threads where fid=版塊ID order by tid desc limit 10",10,24,0}] [/e:loop]

調用全論壇新帖子:

[e:loop={"select tid,subject,dateline from jinyu5.cdb_threads order by tid desc limit 8",10,24,0}]

[/e:loop]

調用全論壇熱帖子:

[e:loop={"select tid,subject,dateline from jinyu5.cdb_threads order by views desc limit 8",10,24,0}]

[/e:loop]

調用指定版塊的精華帖子:

[e:loop={"select tid,subject,dateline,digest from accbbs.accbbsforum_thread where digest!=0 and fid=版塊ID order by tid desc limit 10",10,24,0}]

[/e:loop]

調用指定版塊熱門帖,如調用版塊ID為40的回復數超過20的帖:

[e:loop={"select tid,subject,dateline,replies from accbbs.accbbsforum_thread where replies>=20 and fid=40 order by tid desc limit 10",10,24,0}]

[/e:loop]

注:以上代碼由于網頁安全問題,不齊全,中間少了帖子鏈接,各站長在修改網頁的時候加上去吧,如果不會,請百度。

微信掃一掃

然貓網微信賬號
河南体育彩票网