热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHPCMSv9如何调用Discuz!X论坛数据

摸索了个把月的PHPCMSv9,目前的功能大致了解了。建站前计划要整合DZX1.5的,在论坛搜索方法已经实现了同步,但是对于论坛帖子调用还没有得到更多帮助,可能是因为太简单了,没有人去写,我就献丑
摸索了个把月的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来倒序排序获取论坛最新帖子)
  1. {pc:get sql="SELECT * FROM bbs_forum_thread order by tid desc" cache="3600" 
  2. return="data" num="10"}
  3. {loop $data $key $val}
  4. {str_cut($val[subject],28,'')}
  5. {/loop}
  6. {/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)
  1. {pc:get sql="SELECT * FROM bbs_forum_thread where fid in(46,47) order by 
  2. views desc" cache="3600" return="data" num="10"}
  3. {loop $data $key $val}
  4. {str_cut($val[subject],28,'')}
  5. {/loop}
  6. {/pc}


4、调用某个栏目下的精华帖(按照精华级别倒序排列)
  1. {pc:get sql="SELECT * FROM bbs_forum_thread where fid=47 order by digest 
  2. desc" cache="3600" return="data" num="10"}
  3. {loop $data $key $val}
  4. {str_cut($val[subject],28,'')}
  5. {/loop}
  6. {/pc}


5、列出某个栏目下所有的子栏目名称(按照自己设定的排序顺序排列 什么?怎么自己设定?就在dz后台——论坛——版块管理 每个版块前面那个数字嘛)
  1. {pc:get sql="SELECT * FROM bbs_forum_forum where fum=37 order by displayorder
  2. asc" cache="3600" return="data" num="10"}
  3. {loop $data $key $val}
  4. {str_cut($val[subject],28,'')}
  5. {/loop}
  6. {/pc}


比如论坛有一个栏目叫“业主论坛” 下面有众多楼盘的子栏目 业主论坛gid=37(就是刚才提到的那个灰色的数字) 在上面代码中fum就是gid
很多朋友用V9做房产网站,但是房源发布模块因为V9的开发进度问题,所以想用dz的房产模块,比较疑惑怎么实现下图的方式调用
其实只要在数据库里,总会有办法弄出来,没有查看数据库之前我也很愁了一阵子,但分析下数据库,想办法把需要的字段读取出来,利用sql就可以实现了,这里需要用到关联语句
  1. {pc:get sql="SELECT a.tid,a.H_room,a.H_area,a.H_rents,b.subject FROM 
  2. bbs_category_sortvalue3 a INNER JOIN bbs_category_house_thread b on a.tid = 
  3. b.tid order by a.tid desc" num="6" page="$page"}
  4. {loop $data $r}
  5. {str_cut($r[subject],20)}
  6. {$r[H_room]}室
  7. {$r[H_area]}㎡
  8. {if $r[H_rents]>0}{$r[H_rents]}以内{else}面议{/if}
  9. {/loop}
  10. {/pc}


dz房产模块每建立一个分类的时候会生成一张数据表 默认的有 房屋出租 房屋出售两个分类 bbs_category_sortvalue1 和 bbs_category_sortvalue2
我的房屋求租是bbs_category_sortvalue3。
至于h_room h_area h_rents这些是什么,如果想用dz房产模块的能够实现在房源列表页正常调用的人应该不难理解,这里主要说一下这个sql语句是什么意思。
  1. SELECT a.tid,a.H_room,a.H_area,a.H_rents,b.subject FROM 
  2. bbs_category_sortvalue3 a INNER JOIN bbs_category_house_thread b on a.tid = 
  3. 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的这些数据
这个数据有很多字段,我们在前台展示只需要读几个字段出来就可以了 a.tid,a.H_room,a.H_area,a.H_rents,b.subject 就是这个字段了 a.tid一定要读出来,因为后的链接是靠它链接的。
其他的请各位童鞋自己举一反三。
推荐阅读
  • MySQL多表数据库操作方法及子查询详解
    本文详细介绍了MySQL数据库的多表操作方法,包括增删改和单表查询,同时还解释了子查询的概念和用法。文章通过示例和步骤说明了如何进行数据的插入、删除和更新操作,以及如何执行单表查询和使用聚合函数进行统计。对于需要对MySQL数据库进行操作的读者来说,本文是一个非常实用的参考资料。 ... [详细]
  • 本文介绍了如何在MySQL中将零值替换为先前的非零值的方法,包括使用内联查询和更新查询。同时还提供了选择正确值的方法。 ... [详细]
  • IhaveconfiguredanactionforaremotenotificationwhenitarrivestomyiOsapp.Iwanttwodiff ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文介绍了在MySQL8.0中如何查看性能并解析SQL执行顺序。首先介绍了查询性能工具的开启方法,然后详细解析了SQL执行顺序中的每个步骤,包括from、on、join、where、group by、having、select distinct、union、order by和limit。同时还介绍了虚拟表的概念和生成过程。通过本文的解析,读者可以更好地理解MySQL8.0中的性能查看和SQL执行顺序。 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文介绍了游标的使用方法,并以一个水果供应商数据库为例进行了说明。首先创建了一个名为fruits的表,包含了水果的id、供应商id、名称和价格等字段。然后使用游标查询了水果的名称和价格,并将结果输出。最后对游标进行了关闭操作。通过本文可以了解到游标在数据库操作中的应用。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • 如何在php中将mysql查询结果赋值给变量
    本文介绍了在php中将mysql查询结果赋值给变量的方法,包括从mysql表中查询count(学号)并赋值给一个变量,以及如何将sql中查询单条结果赋值给php页面的一个变量。同时还讨论了php调用mysql查询结果到变量的方法,并提供了示例代码。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • 2022-03-01:k8s安装phpmyadmin,yaml如何写?
    2022-03-01:k8s安装phpmyadmin,yaml如何写? ... [详细]
  • phpmyadmin如何导出数据库文件
    数据库|phpMyAdminphpmyadmin,数据库数据库-phpMyAdmin修改密码的php源码,vscode是什么牌子,ubuntuctbb,脚本执行tomcat,sql ... [详细]
author-avatar
郭彩凤da
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有