【问题标题】:getting top users uploaded pictures using php使用 php 获取顶级用户上传的图片
【发布时间】:2013-04-05 06:37:19
【问题描述】:

各位,我正在使用 laravel 框架版本 3,我想获得最多 10 个活跃用户(他们上传了大量图片)。 我的表结构: 用户

id,username ..

图片

id,user_id,views..

然后我想显示他们的图片示例的总视图: 图片 1 的浏览量为:150 图 2 的浏览量为:100 所以该用户的总数将是 250 等等。 有人可以帮忙吗?

【问题讨论】:

    标签: php mysql laravel


    【解决方案1】:

    SQL 查询是这样的:

    SELECT
      COUNT(*) as numPics,
      SUM(p.views) as totalViews
    FROM
      pics p
    INNER JOIN
      users u
    ON
      p.user_id = u.id
    GROUP BY p.user_id
    ORDER BY numPics DESC LIMIT 10
    

    但是,根据您拥有的数据量,我强烈建议您避免这种实时聚合并寻求缓存它。

    【讨论】:

    • 查询不起作用我收到此错误:SQLSTATE[42000]: Syntax error or access violation: 1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法,以便在 ') 附近使用 numPics,SUM(p.views) 作为 totalViews FROM images p INNER JOIN users u ON' 在第 1 行 SQL:SELECT COUNT( p.) as numPics, SUM(p.views) as totalViews FROM images p INNER JOIN users u ON p.user_id = u.id GROUP BY p.user_id ORDER BY numPics DESC LIMIT 10 绑定:array ( )
    • 谢谢,当我尝试获取结果并回显 $user['numPics'] 时,它给了我这个错误:不能使用 stdClass 类型的对象作为数组
    • 尝试 echo $user->numPics - 您的 ORM 将值作为对象而不是数组发送回。
    • 亲爱的我收到了这个错误:未定义的属性:stdClass::$numPics
    猜你喜欢
    • 2014-03-08
    • 1970-01-01
    • 2010-09-26
    • 2011-03-17
    • 1970-01-01
    • 2014-07-11
    • 2013-01-29
    相关资源
    最近更新 更多