2013-04-11 81 views
0

我比较2级的用户谁从某一天中最鸣叫,并把这个Highcharts的线图叽叽喳喳的,下面的MySQL的代码,我有:Highcharts:比较2线,不同的日期

<?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位艺术家)

然后我得到的tweets的用户接受当天的金额,与日期一起。 这一切都很好,输出如我所料。

现在,当我把它放在图中时,我把日期数组作为xAxis类。 并将两位艺术家的tweetAmount放在数据输入中,以创建两条线。

的问题是:

艺术家1对06-04-2013,08-04-2013 & 2013年10月4日 艺术家2数据对07-04-2013,08-04-数据2013,09-04-2013 & 10-04-2013(所以每天,实际上是在我的数据库中)

艺术家2将有他的数据07-04-2013在06-04-2013(因为该值第一) 艺术家1 & 2 08-04-2013根据分类07-04-2013,因为这是第二个可用的日期。

等等,等等

是否有可能,我可以使用的日期排列,修复鸣叫量的排列,让每一个丢失的日期将有0分配给它太行保持正确的用日期。

+0

在预处理(从数据库获取数据时),您可以比较数据,然后推送0 /空值。 – 2013-04-12 09:56:07

回答

0

的两件事情,我会做的做到这一点:

1)使用日期时间x轴

2),而从表中拉数据,创建除了返回的每个日期的数组您正在构建的阵列。循环访问日期数组,并为每个日期检查单个数组的值。如果不存在任何值,请创建它。

然后,您将有两个具有相同日期的数组,并且您可以将它们绘制在日期时间轴上,而不用担心类别索引匹配。