首页 > 解决方案 > 如何每周按用户 ID 对表列求和并在 PHP 中回显

问题描述

我需要帮助才能从周日开始每周按用户 ID 对“total_attendance 表列”求和并回显。

本周的产出应该会超过上周的产出,而下周的产出应该会像这样一直覆盖本周的产出

下面是我已经为此编写的代码

我得到了这个错误。

警告:mysqli_fetch_assoc() 期望参数 1 为 mysqli_result,布尔值在……中给出。

除了错误,请我需要一个工作代码。

一如既往的感谢

<?php $result = mysqli_query($con, "SELECT SUM(totalattn) FROM 
attendance GROUP BY yearweek(date, 0) WHERE user_id='$user_id'");

 while ($row = mysqli_fetch_assoc($result)) {
 $totalattn = $row['totalattn']; 
 echo $totalattn;
 }                            
?>   

标签: phpmysql

解决方案


GROUP BY子句要求您指定作为子句一部分分组的字段SELECT。此外,WHERE子句需要放在GROUP BY子句之前

<?php $result = mysqli_query($con, "SELECT yearweek(date, 0), SUM(totalattn) FROM 
attendance  WHERE user_id='$user_id' GROUP BY yearweek(date, 0)");

始终遵循以下顺序:

SELECT something
FROM some place
JOIN with some other place
WHERE conditions are met
GROUP BY something you selected which you'd want to aggregate

另外,请记住转义您的查询以防止注入和各种讨厌的


推荐阅读