PHPCMS v9如何挪用Discuz!X 论坛数据

  探索了个把月的PHPCMS v9,今朝的成果大抵相识了。建站前打算要整合DZ X1.5的,在论坛搜索要领已经实现了同步,可是对付论坛帖子挪用还没有获得更多辅佐,大概是因为太简朴了,没有人去写,我就献丑整理一下吧。假如有用贫苦给我个顶,俺小学生需要勉励。

  一、首先说一下数据库成立的方法,假如你直接是把V9和dz放在同一个数据库的话,请跳过此步调,假如是单独的数据库可以在pc论坛搜索关于外部数据源的帖子。

  二、顺便先容下dx x1.5内里常用的数据表:

  我的数据库前缀为 bbs

  bbs_x_forum_thread 是论坛帖子的主表

  内里有帖子序列号(tid) 栏目序列号(fid) 帖子标题(subject) 查察量(views) 英华品级(digest)

  懂sql语言的童鞋,发起装个phpmyadmin 看看数据库的布局

  就如dz靠山版块定名的一样,forum是广场也就是论坛home是故里 _forum_为前缀的就是跟论坛有关的数据表

  三、挪用典型

  1、挪用整个论坛最近帖子(用tid来倒序排序获取论坛最新帖子)

{pc:get sql="SELECT * FROM bbs_forum_thread order by tid desc" cache="3600" return="data" num="10"}

{loop $data $key $val}

{str_cut($val[subject],28,'')}

{/loop}

{/pc}

  access和mssql用的多的伴侣大概喜欢写 select top 10 * form 这来获取帖子的数量,

  可是在mysql内里一般都是在后头加limit 并且pc标签会自动生成limit 所以只需要修改后头的num的数量即可。

  2、挪用整个论坛最热门帖子(用views的数量来倒序排序获取论坛最新帖子)

{pc:get sql="SELECT * FROM bbs_forum_thread order by views desc" cache="3600" return="data" num="10"}

{loop $data $key $val}

{str_cut($val[subject],28,'')}

{/loop}

{/pc}

  3、挪用多个栏目最热门帖子(fid在dz的靠山——论坛 后边谁人灰色的数字就是栏目标ID)

{pc:get sql="SELECT * FROM bbs_forum_thread where fid in(46,47) order by views desc" cache="3600" return="data" num="10"}

{loop $data $key $val}

{str_cut($val[subject],28,'')}

{/loop}

{/pc}

  4、挪用某个栏目下的英华帖(凭据英华级别倒序分列)

{pc:get sql="SELECT * FROM bbs_forum_thread where fid=47 order by digest desc" cache="3600" return="data" num="10"}

{loop $data $key $val}

{str_cut($val[subject],28,'')}

{/loop}

{/pc}

  5、列出某个栏目下所有的子栏目名称(凭据本身设定的排序顺序分列 什么?怎么本身设定?就在dz靠山——论坛——版块打点 每个版块前面谁人数字嘛)

{pc:get sql="SELECT * FROM bbs_forum_forum where fum=37 order by displayorder asc" cache="3600" return="data" num="10"}

{loop $data $key $val}

{str_cut($val[subject],28,'')}

{/loop}

{/pc}

  好比论坛有一个栏目叫“业主论坛” 下面有浩瀚楼盘的子栏目 业主论坛gid=37(就是适才提到的谁人灰色的数字) 在上面代码中fum就是gid

  许多伴侣用V9做房产网站,可是房源宣布模块因为V9的开拓进度问题,所以想用dz的房产模块,较量迷惑怎么实现下图的方法挪用

  其实只要在数据库里,总会有步伐弄出来,没有查察数据库之前我也很愁了一阵子,但阐明下数据库,想步伐把需要的字段读取出来,操作sql就可以实现了,这里需要用到关联语句

{pc:get sql="SELECT a.tid,a.H_room,a.H_area,a.H_rents,b.subject FROM bbs_category_sortvalue3 a INNER JOIN bbs_category_house_thread b on a.tid = b.tid order by a.tid desc" num="6" page="$page"}

{loop $data $r}

{str_cut($r[subject],20)}

{$r[H_room]}室

{$r[H_area]}㎡

{if $r[H_rents]>0}{$r[H_rents]}以内{else}面议{/if}

{/loop}

{/pc}

  dz房产模块每成立一个分类的时候会生成一张数据表 默认的有 衡宇出租 衡宇出售两个分类 bbs_category_sortvalue1 和 bbs_category_sortvalue2

  我的衡宇求租是bbs_category_sortvalue3。

  至于h_room h_area h_rents这些是什么,假如想用dz房产模块的可以或许实此刻房源列表页正常挪用的人应该不难领略,这里主要说一下这个sql语句是什么意思。

SELECT a.tid,a.H_room,a.H_area,a.H_rents,b.subject FROM bbs_category_sortvalue3 a INNER JOIN bbs_category_house_thread b on a.tid = b.tid order by a.tid desc

  表明:bbs_category_sortvalue3 a 将数据库bbs_category_sortvalue3 取别名为 a 因为这个数据库的名字有点长 写起来贫苦,我就把冯斯特洛夫斯基取别名为 甲 是这个原理

  bbs_category_house_thread b 将数据库bbs_category_house_thread 取别名为 b

  select _______ from a inner join b on a.tid=b.tid 查询 a表的tid = b 表的tid的这些数据

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/10227.html