Сделайте график с Google визуализацией с двумя массивами - PullRequest
1 голос
/ 14 апреля 2020

Привет. Я хочу построить график из данных в базе данных, используя визуализацию Google. Вот код, который я использую:

<?php
$connect = mysqli_connect("db_host", "db_name", "db_pass", "db_table");     
if(!$connect ) {
    die('Connection failed: ' . mysqli_error());
}
echo 'Connected successfully';



$tempsql="SELECT `temperature` FROM `apidata`";
$resulttemp = $connect->query($tempsql);
$temp=array();
foreach ($resulttemp as $rowtemp){
    $temp[]=$rowtemp;
}
$resulttemp->close();

$idsql="SELECT `id` FROM `apidata`";
$resultid = $connect->query($idsql);
$id=array();
foreach ($resultid as $rowid){
    $id[]=$rowid;
}
$resultid->close();

$js_arrayTemp = json_encode($temp);
//echo "var javascript_array = ". $js_array . ";\n";
$js_arrayId=json_encode($id);
//echo "var javascript_array = ". $js_array2 . ";\n";

mysqli_close($connect);
?>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">

function drawVisualization() {
  // Create and populate the data table.
  var Temp = <?php echo $js_arrayTemp;?>;
  var id = <?php echo $js_arrayId;?>;

  var data = new google.visualization.DataTable();
  data.addColumn('string', 'id');
  data.addColumn('number', 'temp');

  for(i = 0; i < id.length; i++)
    data.addRow([id[i], Temp[i]]);

  // Create and draw the visualization.
  new google.visualization.LineChart(document.getElementById('visualization')).
    draw(data, {});
}

</script>

Когда я смотрю на свой веб-сайт, графика нет. Но в отладчике я могу видеть данные Изображение отладчика Изображение og отладчик 2 Надеюсь, кто-то может увидеть мою проблему.

1 Ответ

0 голосов
/ 15 апреля 2020

не может использовать объект в качестве значения столбца, здесь ...

data.addRow([id[i], Temp[i]]);

, где Temp[i] = {"temperature": "6"}

, вместо этого получите значение объекта. ..

data.addRow([parseInt(id[i].id), parseFloat(Temp[i].temperature)]);
...