2011-08-09 14 views
0

私は自分のウェブサイトでチャートを表示するためにハイチャートを使用しています。私は "advertising_clicks"というデータベーステーブルを持っています。私はそのテーブルからのデータをハイチャートにしたい。 しかし、私は新しい日が来るときにデータを分離したい。データベースからデータをソートし、チャートで使用します。 PHP

私のデータベースの画像:

series: [{ 
       name: 'Clicks', 
       data: [1, 2, 3] 
      }], 

で一日を設定する方法:http://awesomescreenshot.com/0cfia2md0

方法はhighchart中(見つかった行の#)クリックの#を置くためには、この方法です。 highchartsは、このようにしている:私は日のXの数で、データを制限したい

xAxis: { 
        categories: ['Today', '09-06', '10-06'] 
       }, 

私はArraysを使って考えていましたが、どうすればよいか分かりません。助けてください! :)

+0

どのDBエンジンですか? – ain

答えて

1

日付の列、つまりWHERE 'date' BETWEEN x AND yをフィルタリングして日数を制限し、日数のデータを取得するには、GROUP BY 'date'を使用できます。だからあなたのクエリは、あなたがのために、グラフを作成したい日付範囲と

SELECT 
    count(id) AS Clicks, 
    date AS categories 
FROM advertisement_clicks 
WHERE date BETWEEN x AND y 
GROUP BY date 
ORDER BY date DESC 

のようなものに置き換えxyだろう。

それとも、本当に常に(MySQLを仮定)WHERE代わりのdate BETWEEN x AND y

date >= CURRENT_DATE - INTERVAL x DAY 

を使用し、その後x最後日間照会したい場合。場合

date列は、MySQL GROUP BY DATE(date)

フォーマット(「カテゴリ」のラベルのための)クライアント側で日付を想定し、あなたがグループ化の日付部分を抽出する必要がありますInfactは、タイムスタンプ、つまり、それはより容易になるだろうそれはSQLで行います(ただし、ほとんどのエンジンは日付作成機能をサポートしています)。

+0

正確に同じタイムスタンプで発生したクリックだけを集計することはできませんか?私はあなたが日付処理と集計の両方をSQLやクライアントで行う必要があると思います。 – abeyer

+0

'date'カラムに日付のみが含まれていると仮定します。タイムスタンプであれば、実際には日付部分を抽出してグループ化する必要があります。 – ain

+0

彼のスクリーンショットは、未処理のunixタイムスタンプのようなものが日付列として表示されます。 – abeyer

関連する問題