2011-09-19 56 views
0

我有一個名爲 「軌道」 表,它看起來像這樣:獲取統計數據,並顯示在圖表 - PHP/HighCharts

  1. ID,
  2. 名,
  3. 網址
  4. 命中

我有一個餅圖,從highcharts,代碼如下所示:

var chart; 
$(document).ready(function() { 
    chart = new Highcharts.Chart({ 
     chart: { 
     renderTo: 'chart', 
     plotBackgroundColor: null, 
     plotBorderWidth: null, 
     plotShadow: false 
     }, 
     title: { 
     text: 'Where users came from, total' 
     }, 
     tooltip: { 
     formatter: function() { 
      return '<b>'+ this.point.name +'</b>: '+ this.percentage +' %'; 
     } 
     }, 
     plotOptions: { 
     pie: { 
      allowPointSelect: true, 
      cursor: 'pointer', 
      dataLabels: { 
       enabled: false 
      }, 
      showInLegend: true 
     } 
     }, 
     credits: { 
     enabled: false 
     }, 
     series: [{ 
     type: 'pie', 
     name: 'Browser share', 
     data: [ 
      ['Firefox.com', 45.0], 
      ['Default.com',  26.8], 
      ['MSN',  12.8], 
      ['Google.com', 8.5], 
      ['Yahoo.com',  6.2], 
      ['Others', 0.7] 
     ] 
     }] 
    }); 
}); 

我的問題是,我怎樣才能從「軌道」表(點擊),以及(名稱)和餅圖像其輸出數據:

「名」,「點擊」

然後,最後將#個匹配轉換爲%。

+0

您是否打算重新繪製圖表,生成一次(在頁面加載時)就足夠了? – roselan

+0

是的,就夠了。 –

回答

0

簡單的方法是查詢到MySQL數據,然後排序一樣作爲

[ 
     ['Firefox.com', 45.0], 
     ['Default.com',  26.8], 
     ['MSN',  12.8], 
     ['Google.com', 8.5], 
     ['Yahoo.com',  6.2], 
     ['Others', 0.7] 
    ] 

,如果你想顯示圖表只是在頁面加載需要。 您也可以使用JSON。

2
series: [{ 
     type: 'pie', 
     name: 'Browser share', 
     data: [ 
     <?php 

     $sql = 'select sum(hits) from tracks'; 
     $result = mysql_query($sql); 
     $row = mysql_fetch_row($result); 
     $totalHits = $row[0]; 

     $sql = 'select name, hits from tracks order by hits desc'; 
     $result = mysql_query($sql); 

     $i = 0; 
     $totalOther = 0; 
     $maxSlices = 5; 
     $minPercent = 10; 

     while ($row = mysql_fetch_row($result)) 
     { 
      $percent = row[1]/$totalHits * 100; 

      if (++$i <= $maxSlices && $percent >= $minPercent) 
      { 
       echo json_encode($row); 
      } 
      else 
      { 
       $totalOther += $row[1]; 
      } 
     } 
     if ($totalOther > 0) echo json_encode(array('Other', $totalOther)); 
     ?> 
     ] 
     }] 
如果你想刷新thourgh阿賈克斯

...

... 
series: [{ 
     type: 'pie', 
     name: 'Browser share', 
     data: getData(function(result) {return result;}), 
... 

在PHP你必須做一個新的文件( 'file.php')與在第一個代碼塊中顯示的代碼;

+0

這隻能顯示一行的數據。每當我添加大於0的命中行時,圖表就不會顯示。源代碼如下所示:data:[ [「Superior(Edited)f」,「53」] [「sdafdsafdsafsf」,「24」] [「Other」,3]] }] –

+0

我覺得它搞亂了json_encode。 –

相關問題