2013-08-19 4 views
0

Хотите добавить SQL-вставку в мои диаграммы Google. Я посмотрел пример Google в API, однако он использует набор файлов, содержащих значения. Здесь я привел несколько примеров, но они кажутся довольно сложными.Google chart SQL и Json

Я хочу заполнить диаграмму данными из моей БД, им с использованием обесцененного кода, его просто примером. Я прочитал об использовании json_encode. Однако, когда я применяю его к моему результату, я получаю цитаты, которые в соответствии с приведенным ниже примером Google не нужны.

Вкратце, как я могу получить этот простой запрос, отображаемый в таблице ниже?

Пример запроса

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']) 

Пример того, что Google ожидает

<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>  

ответ

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); ?>); 
+0

Я заметил на Запятая, я дам свой метод назад. Но как бы я использовал метод Json? как когда я использую echo 'json_encode', формат выглядит неправильно, т. е. все было« »около – Skot

+0

. JSON требует, чтобы имена и строки свойств объекта были заключены в двойные кавычки, так что это может быть то, что вы видите. Кроме того, по умолчанию MySQL выводит числа как строки, поэтому вы должны их анализировать как int или float, прежде чем добавлять их к вашему выводу, или json_encode будет кодировать их как строки. – asgallant

+0

user19786, я установил опечатку в приведенном выше коде. Попробуйте с исправлением. – asgallant