2010-05-11 108 views
1

我有一些数据,并希望创建一些动态图表。我看过谷歌可视化api ..它看起来不错,但问题是我不是很熟悉它。任何想法,我怎么能从MySQL数据设置data.setValue如何从mysql数据创建图表? (使用谷歌可视化API)

<script type='text/javascript'> 
    google.load('visualization', '1', {'packages': ['geomap']}); 
    google.setOnLoadCallback(drawMap); 

    function drawMap() { 
     var data = new google.visualization.DataTable(); 
     data.addRows(6); 
     data.addColumn('string', 'Country'); 
     data.addColumn('number', 'Popularity'); 
     data.setValue(0, 0, 'Germany'); 
     data.setValue(0, 1, 200); 
     data.setValue(1, 0, 'United States'); 
     data.setValue(1, 1, 300); 
     data.setValue(2, 0, 'Brazil'); 
     data.setValue(2, 1, 400); 
     data.setValue(3, 0, 'Canada'); 
     data.setValue(3, 1, 500); 
     data.setValue(4, 0, 'France'); 
     data.setValue(4, 1, 600); 
     data.setValue(5, 0, 'RU'); 
     data.setValue(5, 1, 700); 

     var options = {}; 
     options['dataMode'] = 'regions'; 

     var container = document.getElementById('map_canvas'); 
     var geomap = new google.visualization.GeoMap(container); 
     geomap.draw(data, options); 
    }; 
    </script> 

我可以使用其他一些方法创建图表,但只是对使用Google Visualization API感兴趣。

谢谢。

回答

2

更新:

看一看你能如何将数据添加到图表。你有可能add data in JSON

你唯一需要做的就是准备一个相应的PHP数组。然后你可以序列化这个数组并设置数据。例如。

<?php 
// $data is an array and already has the correct structure... 
$jdata = json_encode($data); 

?> 

<!-- later ... --> 

<script type='text/javascript'> 
    google.load('visualization', '1', {'packages': ['geomap']}); 
    google.setOnLoadCallback(drawMap); 

    function drawMap() { 
     var data = new google.visualization.DataTable(<?php echo $jdata ?>); 
     var options = {}; 
     options['dataMode'] = 'regions'; 

     var container = document.getElementById('map_canvas'); 
     var geomap = new google.visualization.GeoMap(container); 
     geomap.draw(data, options); 
    }; 
</script> 

我推荐阅读文档/ API reference。我发现基本上这只是通过搜索...


没有进一步的信息,我们无法给出一个明确的答案,而是一般的做法是:

假设你已经获取从您的数据库中的记录结果集$results比你只能循环它:

<?php foreach($results as $row): ?> 

    data.setValue(<?php echo $row['column1']; ?>, <?php echo $row['column2']; ?>); 
    // depends on what type of char you want to create, on your actual data etc. 

<?php endforeach; ?> 
+0

。谢谢我理解这种方法,有没有更好的方式没有把它混合起来..我的意思是例如,调用data.php返回一些格式化的数据..就像它。 Thx – user187580 2010-05-11 12:50:52

+0

@ user187580:请参阅我的更新回答。 – 2010-05-11 13:19:29

+0

干杯@Felix。非常感谢。 – user187580 2010-05-11 14:01:24

0

我建议使用http://pchart.sourceforge.net/ pchart进行绘图。它完美地工作。

+0

我可以使用其他方法创建图表,但只是有兴趣使用谷歌可视化API。 Thx – user187580 2010-05-11 12:43:32

+0

谷歌有一些限制,如点限制和每日查询限制 – osm 2010-05-11 12:51:44

+0

嗯..以及..我打算使用它的一些admi功能,所以不会有很多电话..所以没有限制的问题。 Thx – user187580 2010-05-11 12:56:54