php - 如何在一个 JSON 中获取两个查询以显示在 Chart.js 折线图上?
问题描述
在我的项目中显示有关图表的统计信息。
其中一个数据是本周和上周网站上的点击次数。两者目前都在自己的折线图中。那里也显示了一切,没有任何问题。但是现在我想把本周的数据和上周的数据放在一个折线图中,以便快速比较从本周到上周的网站访问量。
因此,我尝试将两个查询的输出转换为一个 JSON,但我总是收到此错误 ( json_encode() expects parameter 2 to be int, array given
)。
我认为这应该以不同的方式解决,但我还没有找到任何其他的想法或方法。
代码:
header("Content-Type: application/json");
include "../../../includes/db.php";
$stmt = $connection->prepare("SELECT website_stats_homepage AS current_week FROM website_stats WHERE yearweek(DATE(website_stats_date), 1) = yearweek(curdate(), 1) ORDER BY website_stats_date");
//$stmt = $connection->prepare("SELECT website_stats_homepage FROM website_stats WHERE website_stats_date >= curdate() - INTERVAL DAYOFWEEK(curdate())+6 DAY AND website_stats_date < curdate() - INTERVAL DAYOFWEEK(curdate())-2 DAY");
$stmt->execute();
$result = $stmt->get_result();
$stmt1 = $connection->prepare("SELECT website_stats_homepage AS last_week FROM website_stats WHERE website_stats_date >= curdate() - INTERVAL DAYOFWEEK(curdate())+6 DAY AND website_stats_date < curdate() - INTERVAL DAYOFWEEK(curdate())-2 DAY");
$stmt1->execute();
$result1 = $stmt1->get_result();
$data = array();
foreach($result as $row) {
$data[] = $row;
}
$data1 = array();
foreach($result1 as $row1) {
$data1[] = $row1;
}
$stmt->close();
$stmt1->close();
echo json_encode($data, $data1);
解决方案
将数据打包到关联数组中
echo json_encode(['current' => $data, 'last' => $data1]);
作为替代方案,您可以尝试使用子查询或连接来合并已经通过查询的数据。
推荐阅读
- javascript - 从多个api获取数据
- javascript - 如何将 HLS.js 和 mp4 与 Plyr 集成
- python - PyQt - 在两个小部件之间切换而无需调整 qsplitter 的大小
- firebase - Swift 4 从 Firebase 加载 3D 模型
- mysql - MySQL基于2个条件计算列
- c - 从文本中读取一行并作为输入输入,直到 EOF
- visual-studio-code - VSCode 扩展 - 如何更改文件的文本
- wordpress - URL 重写 - 从 url 中删除子文件夹
- javascript - NodeJs / Google Firebase 函数字符串方法不起作用
- c# - 从 C# 向 Salesforce 批量或批量插入记录