【发布时间】:2021-05-17 08:42:10
【问题描述】:
我正在为每个站点调用分析收集时间戳。每个调用都是 MySQL 表中的一个新条目。为了在 JavaScript 图表中显示数据,我想将时间戳排序为月份并计算每月的调用次数。
生成的 PHP 数组应该是这样的
$calls = [
"Jan" => [
"calls" => 123
],
"Mar" => [...]
]
如何按月对时间戳进行排序并统计每个月的调用次数?
$db->bind("pid",$user['PID']);
$calls = $db->query("SELECT MONTH(aufruf_time), count(*)
FROM profile_analytics WHERE PID = :pid
GROUP BY MONTH(aufruf_time)
ORDER BY aufruf_time");
【问题讨论】:
-
你到底在问什么?如何在查询中获取这些数据?或者您是否已经有查询,但您需要重新构建结果?无论哪种方式,在编写问题时,您都应该提出一个明确的问题。现在,您只给出了预期结果的规范,没有任何上下文。
-
我已经从数据库中收集了查询。我正在努力将数据处理为上述格式。
-
1.问题:如何将时间戳分类为月份? 2. 问:如何统计每月的通话次数?
-
如果可能,您应该按 MySQL 而非 PHP 代码库对数据进行排序,这在大多数情况下性能更高。然后遍历结果集并构建你的数组(这是最简单的部分)。
-
如果您在minimal, reproducible example 中提供有关您的数据库结构的信息,也许我们可以在查询级别正确地帮助您执行此操作。如果您想在 PHP 中执行此操作,请分享您拥有的数组示例以及您尝试对数据进行分组的代码。您的问题中缺少重要的细节。