Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[发布] Discuz!用SQL调外部数据库数据展示

[复制链接]
tearszhu 发表于 2013-10-18 11:05:57 | 显示全部楼层 |阅读模式
前言:由于整站系统用了几个系统,所以一直有在BBS上展示资讯和其他内容的需求,Discuz!7的调用外部数据的功能用起来非常顺手,但是不知道为什么到X系列就没了,一直咨询官方也没有可操作的方案,本来挺期待官方的一系列培训的,但是确实没耐心听下去,翻了一下记录也没有说如何去调外部数据。最后发现,原来不懂程序的小白的确很悲哀...
系统说明:
个人的小站用了PHPCMS V9做主站,这个系统很好用,超好用,不过PC官方似乎不愿意投入太多继续开发了,郁闷一下。另外用了74CMS的人才系统,也是非常好用,非常顺手的人才系统。这三个系统的会员系统已经整合UC,打通会员登陆。

改动文件:
source\module\forum\forum_index.php
template\default\forum\discuz.htm


forum_index.php
文件里先要增加数据查询的语句,如下:
  1. $v9news = get_hr369_news(6);
  2. $v9hr = get_hr369_news(8);
  3. $v9manage = get_hr369_news(9);
  4. $v9zhichang = get_hr369_news(10);
  5. $qsjob = get_hr369_job(99);
复制代码

  1.         function get_hr369_news($parentid){
  2.                 $query = DB::query("SELECT catid,catname,url FROM `hr369_v9`.`v9_category` WHERE  parentid={$parentid} and siteid=1");
  3.                 while($row = DB::fetch($query)){
  4.                         $cc1_catid_array[] = $row['catid'];
  5.                         $cc1[$row['catid']]['catname'] = $row['catname'];
  6.                         $cc1[$row['catid']]['url'] = $row['url'];
  7.                 }
  8.                 $cc1_catid = implode($cc1_catid_array,',');

  9.                 $query = DB::query("SELECT * FROM `hr369_v9`.`v9_news` WHERE catid in ({$cc1_catid}) and status=99 order by id desc limit 0,8");
  10.                 while($row = DB::fetch($query)){
  11.                         $row['catname'] = $cc1[$row['catid']]['catname'];
  12.                         $row['caturl'] = $cc1[$row['catid']]['url'];
  13.                         $re['list'][] = $row;
  14.                 }

  15.                 $query = DB::query("SELECT * FROM `hr369_v9`.`v9_position_data` WHERE catid in ({$cc1_catid}) AND thumb=1 order by id desc limit 0,1");
  16.                 while($row = DB::fetch($query)){
  17.                         $row['catname'] = $cc1[$row['catid']]['catname'];
  18.                         $row['caturl'] = $cc1[$row['catid']]['url'];
  19.                         $row['url'] = "http://www.hr369.com/index.php?m=content&c=index&a=show&catid={$row['catid']}&id={$row['id']}";
  20.                         $row['title'] = $arr['title'];
  21.                         $row['inputtime'] = $arr['inputtime'];
  22.                         $re['pic'][] = $row;
  23.                 }
  24.                 return $re;
  25.         }

  26.         function get_hr369_job($parentid){
  27.                 $query = DB::query("SELECT j.id , j.jobs_name , j.companyname , j.company_id  FROM `hr369_job`.`qs_promotion` p , `hr369_job`.`qs_jobs` j where p.`cp_promotionid` = 1 and p.`cp_jobid` = j.id order by p.cp_id DESC");
  28.                 while($row = DB::fetch($query)){
  29.                         $re['list'][] = $row;
  30.                 }
  31.                 return $re;
  32.         }
复制代码
discuz.htm需要增加展示内容:
  1.                
  2.                 <div id="portal_block_615" class="xbs_1 block move-span">
  3. <DIV class="blocktitle title" style=""><SPAN class=titletext style="COLOR: #663399 !important; MARGIN-LEFT: 8px">人力资源招聘</SPAN><SPAN class=subtitle style="FLOAT: right; MARGIN-RIGHT: 8px"><A style="COLOR: #663399 !important" href="http://job.hr369.com/user/login.php?url=/user/company/company_jobs.php?act=addjobs" target=_blank>发布招聘</A></SPAN></DIV><div id="portal_block_615_content" class="dxb_bc"><div class="module cl xl xl1">
  4. <ul>
  5.                                 <!--{loop $qsjob['list'] $id $qsjob}-->
  6.                                         <li><a href="http://job.hr369.com/company/company-show.php?id=$qsjob[company_id]" target="_blank" title="$qsjob[companyname]">$qsjob[companyname]</a> 招聘 <a href="http://job.hr369.com/company/company-jobs.php?id=$qsjob[id]" target="_blank" title="$qsjob[jobs_name]"><strong>$qsjob[jobs_name]</strong></a></li>
  7.                                         <!--{/loop}-->
  8. </ul>
  9. </div></div></div>
  10.                
  11.                 <div id="portal_block_615" class="xbs_1 block move-span">
  12. <DIV class="blocktitle title" style=""><SPAN class=titletext style="COLOR: #663399 !important; MARGIN-LEFT: 8px">新闻资讯</SPAN><SPAN class=subtitle style="FLOAT: right; MARGIN-RIGHT: 8px"><A style="COLOR: #663399 !important" href="http://news.hr369.com/" target=_blank>更多内容</A></SPAN></DIV><div id="portal_block_615_content" class="dxb_bc"><div class="module cl xl xl1">
  13. <ul>
  14.                                 <!--{loop $v9news['list'] $id $v9news}-->
  15.                                         <li>[<a href="$v9news[caturl]" target="_blank" title="$v9news[catname]">$v9news[catname]</a>] <a href="$v9news[url]" target="_blank" title="$v9news[title]">$v9news[title]</a></li>
  16.                                         <!--{/loop}-->
  17. </ul>
  18. </div></div></div>

  19.                 <div id="portal_block_615" class="xbs_1 block move-span">
  20. <DIV class="blocktitle title" style=""><SPAN class=titletext style="COLOR: #663399 !important; MARGIN-LEFT: 8px">HR智库</SPAN><SPAN class=subtitle style="FLOAT: right; MARGIN-RIGHT: 8px"><A style="COLOR: #663399 !important" href="http://hr.hr369.com/" target=_blank>更多内容</A></SPAN></DIV><div id="portal_block_615_content" class="dxb_bc"><div class="module cl xl xl1">
  21. <ul>
  22.                     <!--{loop $v9hr['list'] $id $v9hr}-->
  23.                                         <li>[<a href="$v9hr[caturl]" target="_blank" title="$v9hr[catname]">$v9hr[catname]</a>] <a href="$v9hr[url]" target="_blank" title="$v9hr[title]">$v9hr[title]</a></li>
  24.                                         <!--{/loop}-->
  25. </ul>
  26. </div></div></div>

  27.                 <div id="portal_block_615" class="xbs_1 block move-span">
  28. <DIV class="blocktitle title" style=""><SPAN class=titletext style="COLOR: #663399 !important; MARGIN-LEFT: 8px">管理之家</SPAN><SPAN class=subtitle style="FLOAT: right; MARGIN-RIGHT: 8px"><A style="COLOR: #663399 !important" href="http://manage.hr369.com/" target=_blank>更多内容</A></SPAN></DIV><div id="portal_block_615_content" class="dxb_bc"><div class="module cl xl xl1">
  29. <ul>
  30.                     <!--{loop $v9manage['list'] $id $v9manage}-->
  31.                                         <li>[<a href="$v9manage[caturl]" target="_blank" title="$v9manage[catname]">$v9manage[catname]</a>] <a href="$v9manage[url]" target="_blank" title="$v9manage[title]">$v9manage[title]</a></li>
  32.                                         <!--{/loop}-->
  33. </ul>
  34. </div></div></div>

  35.                 <div id="portal_block_615" class="xbs_1 block move-span">
  36. <DIV class="blocktitle title" style=""><SPAN class=titletext style="COLOR: #663399 !important; MARGIN-LEFT: 8px">职场</SPAN><SPAN class=subtitle style="FLOAT: right; MARGIN-RIGHT: 8px"><A style="COLOR: #663399 !important" href="http://zhichang.hr369.com/" target=_blank>更多内容</A></SPAN></DIV><div id="portal_block_615_content" class="dxb_bc"><div class="module cl xl xl1">
  37. <ul>
  38.                     <!--{loop $v9zhichang['list'] $id $v9zhichang}-->
  39.                                         <li>[<a href="$v9zhichang[caturl]" target="_blank" title="$v9zhichang[catname]">$v9zhichang[catname]</a>] <a href="$v9zhichang[url]" target="_blank" title="$v9zhichang[title]">$v9zhichang[title]</a></li>
  40.                                         <!--{/loop}-->
  41. </ul>
  42. </div></div></div>
复制代码
这样就完成了直接从数据库查询数据到论坛首页上展示了。
演示可以到我的小站中看
http://bbs.hr369.com/
菜鸟,希望大家多多指正。
1314学习网 发表于 2013-10-18 12:33:09 | 显示全部楼层
支持下分享。。。
回复

使用道具 举报

1194957326 发表于 2013-12-15 17:21:36 | 显示全部楼层
强人一枚啊。收下学习了。
回复

使用道具 举报

幽壑潜蛟 发表于 2014-11-11 11:06:28 | 显示全部楼层
我跟楼主的配置差不多。 我采用的是discuz官方的xml方式进行的数据调用。
回复

使用道具 举报

 楼主| tearszhu 发表于 2014-11-21 21:12:24 | 显示全部楼层
幽壑潜蛟 发表于 2014-11-11 11:06
我跟楼主的配置差不多。 我采用的是discuz官方的xml方式进行的数据调用。

求分享。
回复

使用道具 举报

幽壑潜蛟 发表于 2014-11-24 11:30:27 | 显示全部楼层

你这个方法更简单。支持操作数据库。 我开发那个东西是以为最开始我不知道dz能够直接操作其他的数据库。 于是我用了phpcms的第三方数据源功能按照dz官方的xml数据源的格式开发的一个可以调用团购,人才,品牌空间及phpcms自身内容的以dz的xml格式输出然后在dz中使用DIY方式调用的功能。 你的方式更简单直接。 我其实不是很喜欢DIY功能。 代码结构冗余。。
回复

使用道具 举报

 楼主| tearszhu 发表于 2014-11-27 19:58:22 | 显示全部楼层
幽壑潜蛟 发表于 2014-11-24 11:30
你这个方法更简单。支持操作数据库。 我开发那个东西是以为最开始我不知道dz能够直接操作其他的数据库。  ...

xml更规范,不必担心程序升级,而我这样改法,直接动了核心代码,每次升级都是麻烦事。
回复

使用道具 举报

幽壑潜蛟 发表于 2014-11-28 09:30:50 | 显示全部楼层
tearszhu 发表于 2014-11-27 19:58
xml更规范,不必担心程序升级,而我这样改法,直接动了核心代码,每次升级都是麻烦事。

你这方法还是给了我一些灵感。xml的方式可能在数据库不在同一主机上作用很大,数据库就在同一主机上用你这样的方式使用插件实现。也不会影响升级。还是比较快捷。我现在的在商家帖子下面调用商家的商品就是通过插件直接调用数据库的形式实现。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-23 06:54 , Processed in 0.027683 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表