繁体   English   中英

将 MySQL 中的多行求和以显示在 ChartJS 上

[英]SUM multiple rows in MySQL to display on ChartJS

我正在尝试根据日期(月份)对我的 MYSQL 数据库中的所有值求和以显示在 chartJS 上。 我有多排由可回收材料组成。 在这些行内是多列,由员工根据每列中的材料每天捕获的日期和重量组成。 我的 ChartJS 的 PHP 代码如下:

我的 SQL 查询目前是:

<?php
ob_start();
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
// connection
$db_conx = mysqli_connect("localhost", "ecemsmaster", "ecemsmaster", "ecemsmaster");
// Evaluate the connection

if (mysqli_connect_errno()) {
    echo mysqli_connect_error("Our database server is currently down. : (");
    exit();
}
// Initialize Variables
    $months = '';
    $subgrades = '';
    $castaluminiums = '';
    $coppers = '';
    $stainlesssteels = '';
    $plastics = '';
    $batteriess = '';
    $brasss = '';
    $cabless = '';
    $dates = '';
// Get lists from database

$sql = mysqli_query($db_conx, "SELECT * FROM daily_recyclables");
while($row = mysqli_fetch_array($sql)){
    $subgrade = $row['subgrade'];
    $castaluminium = $row['castaluminium'];
    $copper = $row['copper'];
    $stainlesssteel = $row['stainlesssteel'];
    $plastic = $row['plastic'];
    $batteries = $row['batteries'];
    $brass = $row['brass'];
    $cables = $row['cables'];
    $date = date('M, Y', strtotime($row['date']));

    $dates = $dates.'"'.$date.'",';
    $subgrades = $subgrades.$subgrade.',';
    $castaluminiums = $castaluminiums.$castaluminium.',';
    $coppers = $coppers.$copper.',';
    $stainlesssteels = $stainlesssteels.$stainlesssteel.',';
    $plastics = $plastics.$plastic.',';
    $batteriess = $batteriess.$batteries.',';
    $brasss = $brasss.$brass.',';
    $cabless = $cabless.$cables.',';
}
$dates = trim($dates, ",");
$subgrades = trim($subgrades, ",");
$castaluminiums = trim($castaluminiums, ",");
$coppers = trim($coppers, ",");
$stainlesssteels = trim($stainlesssteels, ",");
$plastics = trim($plastics, ",");
$batteriess = trim($batteriess, ",");
$brasss = trim($brasss, ",");
$cabless = trim($cabless, ",");

?>

然后当然是我的 JS 和 HTML 代码。

代码目前正在做的是将日期显示为预期的月份,但我没想到的是在图表上显示多个月份(八月、八月、八月)。 所以你可以想象,在 30 天的数据捕获中,我的图表上有 30 天、8 月、8 月,而不是 8 月的 1 天。

如何在我的 MySQL 查询中正确使用 SUM 函数来为 8 月创建多个条目,并显示为该特定材料的 ONE 总数?

我将 MySQLi 查询更改为:

$sql = mysqli_query($db_conx, "SELECT MONTHNAME(date) AS date, SUM(subgrade) AS subgrade, SUM(castaluminium) AS castaluminium, SUM(copper) AS copper, SUM(stainlesssteel) AS stainlesssteel, SUM(plastic) AS plastic, SUM(batteries) AS batteries, SUM(brass) AS brass, SUM(cables) AS cables FROM daily_recyclables GROUP BY MONTHNAME(date)");

它给了我正在寻找的输出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM