sql >> Databáze >  >> RDS >> Mysql

jak pracovat s dynamickými daty a google grafy?

Vaše otázka se dotýká něčeho, co mě hodně frustrovalo:dokumentace API Google není skvělá! Konkrétně u Charts API jsou v podstatě ve všech jejich příkladech data pro jejich graf pevně zakódována na stránce a v reálném životě budete v podstatě vždy vykreslovat data uložená v DB a přenášená do prohlížeče.

1) Potřebujete nějaký kód na serveru (používám PHP), který se dotazuje na databázi, „vytiskne“ a přenese JSON/komplexní datovou strukturu, což je objekt, kde vlastnosti jsou pole, která obsahují další objekty s vlastnostmi a hodnotami v přesném formát, který Google's Chart JavaScript očekává, že jej přijme do prohlížeče. Udělal jsem to takto:

$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) Tento objekt JSON musíte obdržet ve svém JavaScriptu na své stránce a předat jej do Google Chart JS. Přinesl jsem JQuery a pak použil jeho metodu AJAX takto:

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 úryvky kódu se zaměřují na klíčové části dotazování databáze mySQL, generování objektu JSON, který Google Charts API potřebuje, a jeho přijímání pomocí JQuery a AJAX. Doufám, že se to rozsvítí!



  1. Převést hodnotu mysql LONGTEXT na hodnotu VARCHAR?

  2. Jak zajistit pravidelné zálohování databází

  3. Uživatelsky definovaný zdroj MySQL pro Google Cloud Dataflow

  4. Binární data v MySQL