【问题标题】:simple echo SUM and Group by from mysqli来自 mysqli 的简单 echo SUM 和 Group by
【发布时间】:2018-04-01 16:40:19
【问题描述】:

我有一些对某些人来说可能看起来很简单的东西,但对于我的生活,我无法弄清楚(而且我整天都在尝试)。我有一个简单的数据库,我试图按日期从客户端获取 SUM。在我添加SUM(item) to SELECT 的最后一刻,一切正常 - 从这一点开始,我无法回应任何内容。谁能帮助我下面的代码有什么问题:

<?php
$q_billing = intval($_GET['q_billing']);

$dblink = mysqli_connect("localhost", "User", "Pass", "Exam_2018");

/* If connection fails throw an error */
if (mysqli_connect_errno()) {

echo "Could  not connect to database: Error: ".mysqli_connect_error();

exit();
}

$sqlquery = "SELECT id, client_id, SUM(item) AS total_sales, date 
                FROM test 
                    WHERE date BETWEEN '".$q_billing."' AND '2018-12-31' 
                        GROUP BY client_id ";

if ($result = mysqli_query($dblink, $sqlquery)) {
    /* fetch associative array */
    while ($row = mysqli_fetch_assoc($result)) {
        echo $row["client_id"]." ".$row['total_sales']."<br />";
    }
    /* free result set */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close
?>

请注意 q_billing is DATE,我尝试将其替换为常量 2018-01-01。

我也尝试添加ORDER BY,但没有任何区别。我也看不到任何错误 - 只是一个空白 div 应该是回声。

感谢您的帮助

【问题讨论】:

    标签: php mysqli sum sql-order-by between


    【解决方案1】:

    如果你按 client_id 分组,那么你不应该选择 id 和 date

      $sqlquery = "SELECT  client_id, SUM(item) AS total_sales
                FROM test 
                    WHERE date BETWEEN '".$q_billing."' AND '2018-12-31' 
                        GROUP BY client_id ";
    

    【讨论】:

    • 非常感谢您的帮助和时间。
    • 差不多。我现在得到分配给客户 ID 的显示项目总和。但我现在的问题是我如何回应例如客户的名字?当我向 SELECT 添加另一个列名时,我又回到了同样的问题 - 没有显示任何内容
    • 这是另一个问题,您应该 .. 发布一个新的正确描述的问题 .. 为此 .. (如果我的回答是正确的,您应该将其标记为已接受。看看这里如何 meta.stackexchange.com/questions/5234/… )。 .对于客户的名字可能是你需要一个加入..当你发布新问题时,最终评论我的链接
    • 是的,你是对的。您的回答帮助我解决了最初的问题。我将研究以下问题并搜索已发布的解决方案。
    猜你喜欢
    • 2012-05-04
    • 1970-01-01
    • 2020-01-19
    • 1970-01-01
    • 2021-01-30
    • 2021-05-09
    • 2016-06-21
    • 2012-09-18
    • 1970-01-01
    相关资源
    最近更新 更多