Реализация API Google Chart с отображением пустой страницы - PullRequest
2 голосов
/ 11 апреля 2019

Попытка реализовать форму для вставки простых данных в базу данных, а затем отобразить диаграмму Google на основе базы данных. Страница в настоящее время пуста. (Я буду беспокоиться о форме, когда график будет отображаться правильно).

Я проверил в Google некоторые ответы, но код в основном прямо из их учебника в Google Chart с некоторыми изменениями.

<?php
  require_once("apicreds.php");
  $db = new PDO($connectionString, $username , $password);

    if(!$db){echo "Connection Error";}
    if($db){echo "Connected!";}

  $query = "SELECT `country`, `sum(visits)` FROM `trips` GROUP BY 
`country`";
  $result = $db->query($query);
?>
<html>
  <head>

    <script type="text/javascript">
      google.charts.load('current', {'packages':['corechart']});
      google.charts.setOnLoadCallback(drawChart);



  function drawChart() {
    var data = new google.visualization.arrayToDataTable([
    ['country', 'visits'],
        <?php 
        while($row=$result->fetch_assoc())
        {
            echo "['".$row['country']."',".$row['sum(visits)']."],";
        }
        ?>
    ]);

    var options = {'title':'Visits To Countries',
                    'is3D':true};

    var chart = new 
google.visualization.PieChart(document.getElementById('chart_div'));
        chart.draw(data, options);
  }
    </script>
  </head>

  <body>
      <div id="chart_div"></div>
  </body>
</html>

Некоторые из этих тегов могут быть испорчены, поэтому полный код здесь.

https://pastebin.com/31n5KVG2

копия текущей таблицы:

посещения страны
Германия 1
Канада 2
Великобритания 1
Великобритания 1

В идеале он должен выводиться в виде трехмерной круговой диаграммы из таблицы и обновляться по мере добавления дополнительных данных. С этой частью я смогу справиться позже, но мне нужна помощь, чтобы выяснить, почему она не отображается в данный момент.

1 Ответ

0 голосов
/ 11 апреля 2019

необходимо назвать столбец суммы с помощью ключевого слова as,
результат не будет иметь действительный ключ для -> sum(visits)

$query = "SELECT country, sum(visits) as total_visits FROM trips GROUP BY country";

, затем при загрузке данных, доступименованный столбец ...

echo "['".$row['country']."',".$row['total_visits']."],";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...