2016-09-19 62 views
3

我正在尋找一個解決方案來顯示每月銷售額數量總和(一個圖表中有多行 - >請參閱下面的原始代碼示例)。使用mysql數據生成Google圖表

我可以用while循環通過銷售模式運行有:

var data = new google.visualization.DataTable(); 
    data.addColumn('number', 'Day'); 
    <?php 
     $query = "SELECT DISTINCT Model FROM stats LIMIT 3"; 
     $result = mysql_query($query); 

     while ($row = mysql_fetch_array($result)) 
     { 
      $value = $row['Model']; 
      echo "data.addColumn('number', '".$value."');"; 
     } 

如何將一個但是通過所有的天/月/上出售的註冊權銷售年環模型?我將如何獲得每個銷售模型的數量總和,如下面的「data,addRows」所示。

data.addRows([ 
    [1, 37.8, 80.8, 41.8], 
    [2, 30.9, 69.5, 32.4], 
    [3, 25.4, 57, 25.7], 
    [4, 25.4, 57, 25.7], 
    [5, 25.4, 57, 25.7], 
    [6, 25.4, 57, 25.7], 
    ]); 

原始代碼

<html> 
 
    <head> 
 
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> 
 
    <script type="text/javascript"> 
 
     
 
google.charts.load('current', {'packages':['line']}); 
 
google.charts.setOnLoadCallback(drawChart); 
 

 
    function drawChart() { 
 

 
     var data = new google.visualization.DataTable(); 
 
     data.addColumn('number', 'Day'); 
 
     data.addColumn('number', 'Sales Model 1'); 
 
     data.addColumn('number', 'Sales Model 2'); 
 
     data.addColumn('number', 'Sales Model 3'); 
 

 
     data.addRows([ 
 
     [1, 37.8, 80.8, 41.8], 
 
     [2, 30.9, 69.5, 32.4], 
 
     [3, 25.4, 57, 25.7], 
 
     [4, 25.4, 57, 25.7], 
 
     [5, 25.4, 57, 25.7], 
 
     [6, 25.4, 57, 25.7], 
 
     ]); 
 

 
     var options = { 
 
     chart: { 
 
      title: 'Sales', 
 
     }, 
 
     width: 900, 
 
     height: 500 
 
     }; 
 

 
     var chart = new google.charts.Line(document.getElementById('linechart_material')); 
 

 
     chart.draw(data, options); 
 
    } 
 
    </script> 
 
    </head> 
 
    <body> 
 
    <div id="linechart_material" style="width: 900px; height: 500px"></div> 
 
    </body> 
 
</html>

回答

-1

你嘗試用$ajax

喜歡的東西:

$.ajax({ 
     method: "GET", 
     url: "sales.php", 
     }) 
     .done(function(data) { 
      data.addRows(data); 
     }); 
+0

嗨塞爾吉,我沒有嘗試過或使用過您的建議,因爲我怕我不知道什麼是不:)你能也許能拿我怎麼樣你的代碼將在腳本的環境中工作? –

+0

Ajax是對一些請求的異步調用,所有網站都使用它,它通過javascript調用你的php腳本,當DOM準備好或沒有時 –

0

谷歌已經group() method,會爲做到這一點,你

只需要提供哪些列對組和彙總公式其餘列

見下工作片斷,每個銷售模式的總和繪製了一個表格圖表...

google.charts.load('current', {'packages':['line', 'table']}); 
 
google.charts.setOnLoadCallback(drawChart); 
 

 
function drawChart() { 
 
    var data = new google.visualization.DataTable(); 
 
    data.addColumn('number', 'Day'); 
 
    data.addColumn('number', 'Sales Model 1'); 
 
    data.addColumn('number', 'Sales Model 2'); 
 
    data.addColumn('number', 'Sales Model 3'); 
 

 
    data.addRows([ 
 
    [1, 37.8, 80.8, 41.8], 
 
    [2, 30.9, 69.5, 32.4], 
 
    [3, 25.4, 57, 25.7], 
 
    [4, 25.4, 57, 25.7], 
 
    [5, 25.4, 57, 25.7], 
 
    [6, 25.4, 57, 25.7], 
 
    ]); 
 

 
    var options = { 
 
    chart: { 
 
     title: 'Sales', 
 
    }, 
 
    width: 900, 
 
    height: 500 
 
    }; 
 

 
    var chart = new google.charts.Line(document.getElementById('linechart_material')); 
 
    chart.draw(data, options); 
 

 
    var dataGroup = google.visualization.data.group(
 
    data, 
 
    // modifier column to total all rows 
 
    [{column: 0, type: 'string', modifier: function() {return '';}}], 
 
    // sum columns 
 
    [ 
 
     {column: 1, type: 'number', aggregation: google.visualization.data.sum}, 
 
     {column: 2, type: 'number', aggregation: google.visualization.data.sum}, 
 
     {column: 3, type: 'number', aggregation: google.visualization.data.sum} 
 
    ] 
 
); 
 

 
    var table = new google.visualization.Table(document.getElementById('tablechart')); 
 
    table.draw(dataGroup); 
 
}
<script src="https://www.gstatic.com/charts/loader.js"></script> 
 
<div id="linechart_material"></div> 
 
<div id="tablechart"></div>

+0

這個問題有什麼好運? – WhiteHat