2013-04-11 84 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),而從表中拉數據,創建除了返回的每個日期的數組您正在構建的陣列。循環訪問日期數組,併爲每個日期檢查單個數組的值。如果不存在任何值,請創建它。

然後,您將有兩個具有相同日期的數組,並且您可以將它們繪製在日期時間軸上,而不用擔心類別索引匹配。