0

特定の日に最も多くのツイートを受け取った 2 人の 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 は 2013 年 4 月 6 日、2013 年 8 月 4 日、2013 年 4 月 10 日のデータを持っています アーティスト 2 は 2013 年 7 月 4 日、2013 年 8 月 4 日、2013 年 9 月 4 日、2013 年 4 月 10 日のデータを持っています(実際に私のデータベースにある毎日)

アーティスト 2 のデータは 07-04-2013 で 06-04-2013 になります (その値が最初に来るため) アーティスト 1 と 2 は、カテゴリ 07-04-2013 の下に 08-04-2013 を持ちます。これは 2 番目に利用可能な日付であるためです.

などなど

日付配列を使用してツイート数の配列を修正し、欠落しているすべての日付に 0 が割り当てられるようにして、行が日付で正しいままになるようにすることは可能ですか?

4

1 に答える 1

0

これを達成するために私が行う2つのこと:

1) 日時 x 軸を使用する

2) テーブルからデータを取得しているときに、既に作成している配列に加えて、返されたすべての日付の配列を作成します。日付の配列をループし、日付ごとに個々の配列の値を確認します。値が存在しない場合は作成します。

同じ日付の 2 つの配列が得られ、それらを日時軸にプロットでき、カテゴリ インデックスの一致を心配する必要はありません。

于 2013-04-11T18:02:30.663 に答える