PHP我不知道为什么我的查询不起作用

时间:2015-03-04 17:06:48

标签: php mysql

我的目标是为每个用户总结过去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。

1 个答案:

答案 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";