thinkphp如何按统计结果排序?
我的数据表中有uid,comment两个字段,我想用select选出评论数最多的几个用户,即按每个uid的comment统计总数排序,但统计方法不是连贯操作,请问我该如何...
我的数据表中有uid,comment两个字段,我想用select选出评论数最多的几个用户,即按每个uid的comment统计总数排序,但统计方法不是连贯操作,请问我该如何实现?
展开
展开全部
数据库表uid 应该是用户的id了吧 而评论表都会有对应的评论和用户id 就是取 这个用户id的所有数据进行核算条数。按desc排序就行了啊
追问
请问具体代码怎么写?是否要做一个数组先记录下所有的用户id,再对每个id做统计,再对统计总数排序?当uid较多时这样会不会比较慢。。?谢谢!
追答
具体代码就是
M("comment")->where(array('uid'=>$uid))->count();
//实例化回复表 按where uid=$uid 查询统计; 会返回一个整数,
//comment 是回复的表 uid是用户的id 如果是文章或帖子查询总数 uid也可以是文章或帖子的id、
//具体不知道你怎么用 ,但是原理都是一样的!
//一般的论坛帖子都是这样的吧 列:这个是标题(100/520)意思是游览次数是500回复是100
//这个就是M("comment")->where(array('uid'=>$uid))->count(); 其中把uid换成 tid 就行了啊也就是代表帖子的id
//而你说的用户回复数量 不可能把所有的用户都列出来吧,社区类型的网站 只有进入会员自己的会员中心
//才能看见回复数或者游览别人的资料时候才会显示吧 所以 就可以用
//M("comment")->where(array('uid'=>$uid))->count();这句话查询数量
//至于$uid 你随意 怎么得到的
展开全部
先实例化这个表,然后$db->order('comment DESC,uid')->limit(5)->select();select选出评论数最多的5个用户
更多追问追答
追问
额。。comment 不是评论数而是评论内容。。。谢谢!
追答
你不会多增加一个评论数的字段吗?
你每次去统计ID的评论数量,不太耗效率了吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$dbase->order('comment DESC')->select();
更多追问追答
追问
额。。comment 不是评论数而是评论内容。。。谢谢!
追答
那你就第一次循环出所有的用户id,第二然后根据用户的id查询出所有的uid是这个id的数据,mysql_num_rows()查询出条数,就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询