Highcharts:比较2行与不同日期

quia_a 发布于 2019-03-09 date 最后更新 2019-03-09 14:41 0 浏览

我比较了在特定日期收到最多推文的Twitter用户,并将其放在Highcharts的线形图中,以下是我拥有的mysql代码:

<?php
require('mysql_connect.php');
$artist1 = $_POST['dj1'];
$artist2 = $_POST['dj2'];
$dates_result = mysqli_query($con,"SELECT DISTINCT(tweetDate) FROM tb_tweetDetails");
while ($row = mysqli_fetch_array($dates_result)) {
$dates[] = $row['tweetDate'];
}
$artist1_tweetsADay_result =    mysqli_query($con,"SELECT tweetDate,COUNT('tweetIds') AS 'amountTweets' FROM tb_tweetDetails WHERE tweetId IN 
                            (SELECT tweetId FROM tb_tweetLink LEFT JOIN tb_artists ON 
                            (tb_tweetLink.artistId = tb_artists.artistId) where artistName = '$artist1') GROUP BY tweetDate");
while ($row = mysqli_fetch_array($artist1_tweetsADay_result)) {
$artist1_tweetsADay_date[] = "'" . $row['tweetDate'] . "'";
$artist1_tweetsADay_amount[] = $row['amountTweets'];
}
$artist1_tweetsADay_result =    mysqli_query($con,"SELECT tweetDate,COUNT('tweetIds') AS 'amountTweets' FROM tb_tweetDetails WHERE tweetId IN 
                            (SELECT tweetId FROM tb_tweetLink LEFT JOIN tb_artists ON 
                            (tb_tweetLink.artistId = tb_artists.artistId) where artistName = '$artist2') GROUP BY tweetDate");
while ($row = mysqli_fetch_array($artist1_tweetsADay_result)) {
$artist2_tweetsADay_date[] = "'" . $row['tweetDate'] . "'";
$artist2_tweetsADay_amount[] = $row['amountTweets'];
}
?>
我用它来收集我收集推特数据的所有可用日期(所以也从其他选择的2位艺术家那里收集) 然后,我得到用户当天收到的推文数量以及日期。 这一切都很好,输出如我所料。 现在,当我把它放在图表中时,我把日期数组作为xAxis类别。 并将两位艺术家的tweetAmount放入数据输入中以创建两条线。 问题是: 艺术家1的数据为06-04-2013,08-04-2013& 2013年10月4日 艺术家2的数据为07-04-2013,08-04-2013,09-04-2013& 2013年10月4日(所以每天都在我的数据库中) 艺术家2在2013年4月6日的数据是07-04-2013(因为这个数值是第一位) 艺术家1& 2 08-04-2013在07-04-2013分类下,因为这是第二个可用日期。 等等。 是否有可能我可以使用日期数组来修复推文数量的数组,以便每个缺失的日期都将被赋值为0,以便该行保持与日期正确。
已邀请:

walias

赞同来自:

我要做的两件事就是: 1)使用日期时间x轴 2)从表中提取数据时,除了已经构建的数组外,还要创建一个返回的每个日期的数组。循环遍历日期数组,并为每个日期检查各个数组的值。如果没有值,则创建它。 然后,您将拥有两个具有相同日期的数组,您可以在日期时间轴上绘制它们,而不必担心类别索引匹配。