【发布时间】:2023-04-10 16:18:01
【问题描述】:
我正在对包含各种客户订单的数据库执行以下查询。
SELECT WEEKDAY(orderDateTime) Date, COUNT(clientID) totalCount FROM orders WHERE YEARWEEK(orderDateTime,1) = YEARWEEK(NOW(),1) GROUP BY DATE(orderDateTime)
SELECT WEEKDAY(orderDateTime) Date, COUNT(clientID) totalCount FROM orders WHERE YEARWEEK(orderDateTime,1) = YEARWEEK(NOW() - INTERVAL 1 WEEK,1) GROUP BY DATE(orderDateTime)
SELECT DATE_FORMAT(orderDateTime, '%Y') as 'year', DATE_FORMAT(orderDateTime, '%m') as 'month', COUNT(clientID) as 'total' FROM orders GROUP BY DATE_FORMAT(orderDateTime, '%Y%m')
我正在将它们构建成一个数组,其中包含月/日数字与计数值:
[[0, 1], [1,4]...]
我正在使用 Flot 来绘制这些图表,但发生的情况是,任何没有订单的日子或月份都没有任何价值(显然)所以你得到的是这样的:
[[0, 1], [1,4], [6,12]] 导致图表错误。
试图解决的是如何填充它,使其看起来像:
[[0, 1], [1,4], [2,0], [3,0], [4,0], [5,0], [6,12]]
[[1, 1], [2,4], [3,0], [4,0], [5,0], [6,0], [7,12], [8,0 ], [9,12], [10,0], [11,0], [12,0]]
我主要使用 PHP。如果我不是那么清楚,任何指针将不胜感激和抱歉。询问您是否需要任何澄清。
PHP:
$thisWeekA = array();
$thisWeekQ = $database->query("SELECT WEEKDAY(orderDateTime) Date, COUNT(clientID) totalCount FROM orders WHERE YEARWEEK(orderDateTime,1) = YEARWEEK(NOW(),1) GROUP BY DATE(orderDateTime)")->fetchAll();
foreach($thisWeekQ as $thisweek){
$thisWeekA[] = array( $thisweek['Date'], $thisweek['totalCount'] );
}
array(2) {
[0]=>
array(4) {
["Date"]=>
string(1) "2"
[0]=>
string(1) "2"
["totalCount"]=>
string(1) "3"
[1]=>
string(1) "3"
}
[1]=>
array(4) {
["Date"]=>
string(1) "3"
[0]=>
string(1) "3"
["totalCount"]=>
string(1) "2"
[1]=>
string(1) "2"
}
}
【问题讨论】:
-
所以你需要你的 php 输入数据来处理要处理的浮点图。为了更多的理解,你可以分享你用来准备图形输入数据的 php 代码
-
请在您的问题中更新此内容
-
在每周图表上 [0(星期日),12(订单数)] 对吗?
-
是的,没错。
-
对不起,当我写我现在删除的答案时,我以为这是标记为 javascript。