在SQL中重新计算每个用户的总发布和数据库更新

时间:2014-03-31 14:28:23

标签: php mysql sql

所以我有这个脚本需要更新每个用户的总上传量并存储到users表中。

我有一个功能,可以计算每个用户上传的数量,但没有存储到数据库中,我的网站已经上线,而且由于帖子不停,我无法手动更新这个网站。< / p>

以下是我计算上传次数的功能......

function get_row_count($table, $suffix = "") {
   $res = SQL_Query_exec("SELECT COUNT(*) FROM $table $suffix");
   $row = mysql_fetch_row($res);
  return $row[0];

}

users表看起来像这样

[users table]
 id             username        numuploads      numcomments

上传表格如下所示

[uploads table]
  fileid      userid          added             enabled

那么如何运行SQL查询来计算上传表中每个用户的上传次数,并立即将其更新到每个用户的numuploads中,而无需手动执行。

谢谢..

修改

UPDATE users SET numuploads = (SELECT COUNT(id) as numuploads FROM uploads WHERE owner = users.id)

现在问题已解决

1 个答案:

答案 0 :(得分:0)

不是将计数选为单独的查询,而是添加1并更新某些数据库列,您只能直接进行更新:

UPDATE table SET number = number + 1 WHERE id = <ID>

每当该用户完成新的评论/上传并且要求 number 列为数字类型且默认值设置为0(零)时,应运行此查询。上面的查询只是一个示例,您应该更改以满足您的数据库方案。