我爱自学

 找回密码
 会员注册

QQ登录

只需一步,快速开始

Discuz通过DB::num_rows获取主题数量

使用Discuz二次建站时,有时需要显示满足某种条件的主题数量。本文分享通过DB::num_rows()在帖子模板中输出当前登录者的发帖数量
如本文摘要所述,在Discuz二次开发过程中,想要输出某个用户的发帖数量该如何操作呢?

小编没有找到Discuz系统定义的功能,因此通过mysql命令进行查询。开始使用了如下代码
  1. <!--{eval $res=DB::fetch_all("select subject from ".DB::table('forum_thread')." where authorid='$_G[uid]' and displayorder >= 0");
  2.                                                                         $article_count = DB::num_rows($res);
  3.                                                                         echo $article_count;
  4.                                                                         }-->
复制代码


以上代码执行后,页面没有报错,但是并没有理想的输出结果。

Discuz获取用户发帖数量

Discuz获取用户发帖数量


后面网络上查找了资料,原来discuz DB::num_rows()需要应用在mysql_queryr资源上。将上方代码进行了细微的修改,使用query替代fetch_all。
  1. <!--{eval $res=DB::query("select subject from ".DB::table('forum_thread')." where authorid='$_G[uid]' and displayorder >= 0");
  2.                                                                         $article_count = DB::num_rows($res);
  3.                                                                         echo $article_count;
  4.                                                                         }-->
复制代码

修改后的代码上传服务器后,页面显示效果如下,正确的输出了主题数量。

Discuz通过DB::num_rows获取主题数量

Discuz通过DB::num_rows获取主题数量


注意事项:小数据量用num_rows(),数据量大的情况使用count(*)

mysql_num_rows() 返回结果集中行的数目。此命令仅对 SELECT 语句有效。要取得被 INSERT,UPDATE 或者 DELETE 查询所影响到的行的数目,用 mysql_affected_rows()

点击阅读更多内容!
如果您觉得文章内容帮助到了您,不妨点点感兴趣的广告。感谢您的支持!

微信扫一扫打赏

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

手机版|小黑屋|我爱自学 ( 蜀ICP备19015358号-3 )

GMT+8, 2024-4-20 19:33 , Processed in 0.074182 second(s), 53 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

本站大部分教程是网站原创教程,一部分教程为我爱自学(http://www.5izixue.com)编辑收集整理。

如果您需要转载我爱自学网站教程,请注明“资料来源:我爱自学(5izixue)”字样并注明本站网址。

编辑收集整理的教程版权归原作者所有,本站只提供网友交流学习使用,请勿用于商业用途,如果该文章有任何侵犯您权益的地方,请联系我们(569705694@qq.com),我们将在第一时间进行处理!谢谢您的支持!

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