Mysql
 sql >> Baza danych >  >> RDS >> Mysql

jak pracować z danymi dynamicznymi i wykresami google?

Twoje pytanie dotyczy czegoś, co bardzo mnie frustrowało:dokumentacja API Google nie jest świetna! W szczególności w przypadku Charts API, w zasadzie we wszystkich przykładach, dane do ich wykresów są na stałe zakodowane na stronie, a w rzeczywistości zawsze będziesz renderować dane przechowywane w bazie danych i przesyłane do przeglądarki.

1) Potrzebny jest jakiś kod na serwerze (ja używam PHP), który odpytuje bazę danych, "wypisuje" i przesyła strukturę danych JSON/complex czyli obiekt, którego właściwościami są tablice zawierające dodatkowe obiekty z właściwościami i wartościami w dokładnym format, jakiego oczekuje Google Chart JavaScript w przeglądarce. Zrobiłem to tak:

$sql = "SELECT year,d_pop FROM metrics WHERE year IN ('1940','1950','1960','1970','1980')";

$sth = mysql_query($sql, $conn) or die(mysql_error());

//start the json data in the format Google Chart js/API expects to recieve it
$JSONdata = "{
           \"cols\": [
               {\"label\":\"Year\",\"type\":\"string\"},
               {\"label\":\"Detroit Population\",\"type\":\"number\"}
             ],
        \"rows\": [";

//loop through the db query result set and put into the chart cell values
while($r = mysql_fetch_assoc($sth)) {
   $JSONdata .= "{\"c\":[{\"v\": " . $r['year'] . "}, {\"v\": " . $r['d_pop']  ."}]},";

}    

//end the json data/object literal with the correct syntax
$JSONdata .= "]}";

echo $JSONdata;

2) Musisz otrzymać ten obiekt JSON w swoim JavaScript na swojej stronie i przekazać go do Google Chart JS. Wprowadziłem JQuery, a następnie użyłem jego metody AJAX w następujący sposób:

function drawChart() {
    var jsonData = $.ajax({
        url: "index_db.php",
        dataType:"json",
        async: false
    }).responseText;

    // Create our data table out of JSON data loaded from server.
    var data = new google.visualization.DataTable(jsonData);

    // Instantiate and draw our chart, passing in some options.
    var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
    chart.draw(data, {vAxis: {minValue: 0}});
}

Moje fragmenty kodu skupiają się na kluczowych częściach zapytań do bazy danych mySQL, wygenerowaniu obiektu JSON, którego potrzebuje Google Charts API, i otrzymaniu go za pomocą JQuery i AJAX. Mam nadzieję, że to się rozjaśni!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ASP.NET MVC 4 EF5 z MySQL

  2. mysql.h brakuje .... (Ruby on Rails, OSX)

  3. Transakcja MySQL na dwóch bazach danych na różnych serwerach

  4. Schemat bazy danych Laravel, wartość nullable Foreign

  5. Połącz się z MySQL za pomocą tunelowania SSH w node-mysql