我的目标是为每个用户总结过去1个月的MBSENT和MBREC值。
这是日志(我想稍后总结):
USER MBSENT MBREC TRUSTEDIP REMOTEIP DATE ID
csib 99 0 5.187.169.135 10.8.0.6 2015-03-04 12:19:14 3
csib 30 0 5.187.169.135 10.8.0.6 2015-03-04 12:22:02 4
kwai77 10 0 5.187.169.135 10.8.0.10 2015-03-04 12:23:22 5
kwai77 24 0 5.187.169.135 10.8.0.10 2015-03-04 12:28:18 6
kwai77 2 0 94.44.254.25 10.8.0.10 2015-03-04 13:15:29 7
csib 10 0 94.44.254.25 10.8.0.6 2015-03-04 14:32:01 8
这是我的代码:
$sql = "SELECT SUM(mbsent) AS summ FROM data WHERE datum < DATE_ADD(NOW(), INTERVAL -1 MONTH) AND user='csib'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "<table><tr><th>MBSENT</th><th>user</th></tr>";
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<tr><td>".$row["mbsent"]."</td><td>".$row["summ"]." </td></tr>";
}
echo "</table>";
} else {
echo "0 results";
}
这是我的代码,但没有工作,不知何故,因为我看到它始终返回第一个mbsent值。不是用户csib的MBSENT值的SUM。
答案 0 :(得分:0)
您的查询的SELECT子句中没有$row["mbsent"]
。也许你的意思是:
$sql = "SELECT SUM(mbsent) AS summ, mbsent FROM data WHERE datum < DATE_ADD(NOW(), INTERVAL -1 MONTH) AND user='csib' GROUP BY mbsent";
但这也没有任何意义......所以不确定你在这里会发生什么。
另外,我认为你的日期逻辑倒退了。你想要上个月的一切:
$sql = "SELECT SUM(mbsent) AS summ, mbsent FROM data WHERE datum >= DATE_ADD(NOW(), INTERVAL -1 MONTH) AND user='csib' GROUP BY mbsent";