1

希望将 SQL 插入添加到我的谷歌图表中。我查看了 API 中的 google 示例,但是它使用了包含值的集合文件。我在这里看到了一些例子,但它们似乎相当复杂。

我想用我的数据库中的数据填充图表,我使用的是折旧的代码,这只是一个例子。我已阅读有关使用json_encode. 但是,当我将它应用于我的输出时,我会得到根据下面的谷歌示例不需要的引号。

简而言之,我将如何在下表中显示这个简单的查询?

查询示例

while($row = mysqli_fetch_array($result))
 {
   $data1[]=    "['" . $row1['Date'] . "','" . $row1['SpeciesB'] . "']";
   echo   "['" . $row['Date'] . "','" . $row['SpeciesA'] . "','" . $row['SpeciesB'] . "'],";
 echo "<br>";
 }

输出

 ['2013-08-06','1','1'],
 ['2013-08-13','1','2'],
 ['2013-08-20','2','2'],
 ['2013-08-27','3','1'],
 ['2013-09-17','4','1'],

或者

print_r($data1);

  Array ( [0] => ['2013-08-06','1'] [1] => ['2013-08-13','2'] [2] => ['2013-08-20','2'] [3] => ['2013-08-27','1'] [4] => ['2013-09-17','1'] ) 

谷歌期望的例子

<script type="text/javascript">
  google.load("visualization", "1", {packages:["corechart"]});
  google.setOnLoadCallback(drawChart);
  function drawChart() {
    var data = google.visualization.arrayToDataTable([
      ['Date', 'Species A', 'Species B'],
      ['20/05/2006',  1,      1],
      ['20/06/2006',  3,      2],
      ['20/07/2006',  2,      2],
      ['20/08/2006',  3,      1]
    ]);

    var options = {
      title: 'Site Dynamics'
    };

    var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
    chart.draw(data, options);
  }
</script>      
4

1 回答 1

0

您想使用 json_encode 来处理为您构建输出的细节,因为您当前的方法会在 Internet Explorer 中遇到问题(在最后一行数据之后总是会有一个训练逗号,这会导致 IE 爆炸)。试试这个:

$dataArray = array(array('Date', 'Species A', 'Species B'));
while($row = mysqli_fetch_array($result)) {
    // parse the "SpeciesA" and "SpeciesB" values as integer (int) or floating point (float), as appropriate
    $dataArray[] = array($row['Date'], (int) $row['SpeciesA'], (int) $row['Speciesb']);
}

在javascript中:

var data = google.visualization.arrayToDataTable(<?php echo json_encode($dataArray); ?>);
于 2013-08-19T14:05:44.280 回答