Discuz通过DB::num_rows获取主题数量
小编没有找到Discuz系统定义的功能,因此通过mysql命令进行查询。开始使用了如下代码
- <!–{eval $res=DB::fetch_all(“select subject from “.DB::table(‘forum_thread’).” where authorid=’$_G[uid]’ and displayorder >= 0″);
- $article_count = DB::num_rows($res);
- echo $article_count;
- }–>
复制代码
以上代码执行后,页面没有报错,但是并没有理想的输出结果。
后面网络上查找了资料,原来discuz DB::num_rows()需要应用在mysql_queryr资源上。将上方代码进行了细微的修改,使用query替代fetch_all。
- <!–{eval $res=DB::query(“select subject from “.DB::table(‘forum_thread’).” where authorid=’$_G[uid]’ and displayorder >= 0″);
- $article_count = DB::num_rows($res);
- echo $article_count;
- }–>
复制代码
修改后的代码上传服务器后,页面显示效果如下,正确的输出了主题数量。
注意事项:小数据量用num_rows(),数据量大的情况使用count(*)
mysql_num_rows() 返回结果集中行的数目。此命令仅对 SELECT 语句有效。要取得被 INSERT,UPDATE 或者 DELETE 查询所影响到的行的数目,用 mysql_affected_rows()