php - 更新多个用户的表

标签 php mysql

我希望计算表中用户出现"is"的次数,然后将结果发布到同一用户的另一个表中。两个表都有用户名。我希望为每个用户完成此操作。我有以下内容,但它不起作用。

$sql = $item_count = "SELECT SUM(if(strike='yes',1,0)) AS strike_total FROM weekpicks WHERE username = 'username'";
      // execute SQL query and get result
      $sql_result = mysql_query($sql) or die (mysql_error());
      if (!$sql_result) {
          echo "Something has gone wrong!";
      } 
      else {
           //loop through record and get values
           while ($row = mysql_fetch_array($sql_result)) {

        $item_result = ($row = @mysql_query($item_count)) or die(mysql_error());
        $strike_total = ($row = @mysql_result($item_result,"strike_total"));
        $strikes = ($row = $strike_total ['strike_total']);
        $username = $row["username"];


        // the following will insert number of strikes into table for each user.
        $sql = "UPDATE authorize SET strikes  = '($strikes)' WHERE username='$username'";

        //mysql_query(" UPDATE authorize SET " . "strikes = '" . ($strikes) . "' WHERE username='$username' ");
                $result = mysql_query($sql) or die (mysql_error());

最佳答案

只需一个查询就足够了

针对单个用户的更新..

UPDATE authorize SET strikes  = (select count(*) from weekpicks WHERE username = '$username' and strike='yes') WHERE username='$username';

批量更新所有用户

UPDATE authorize as A SET strikes  = (select count(*) from weekpicks B WHERE strike='yes' and A.username=B.username group by B.username)

是不是很简单。

关于php - 更新多个用户的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35117965/

相关文章:

php - 使用php将sql中的数据导出到excel

javascript - 从 SQL 结果创建嵌套的 JSON 对象

c# - 使用 C# 将大量 CSV 数据插入 mysql 数据库的最快方法是什么?

php - MySQL - 如何连接两个或多个具有多个 ID 的表?

MySQL Ordering a query - 进一步的问题

MYSQL,包括空结果

php - 如果用户名已注册,如何抛出错误消息

php - Mysql 连接表有 2 个外键与同一个表

javascript - PHP 和 MySQL 中的动态下拉列表

php - 基于两个 mysql 字段进行计算