Ошибка Google Chart при использовании подключения PDO - PullRequest
0 голосов
/ 17 марта 2020

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

Это мой текущий вывод my current output

Это то, что я хочу показать my desired output

моя html страница:

<?php
 $dashboard = new userview; ?>
<!DOCTYPE html>
<html>
<head>

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

  function drawChart() {

    var data = google.visualization.arrayToDataTable([
      ['ticketstatus', 'statusnumber'],
        <?php

             $dashboard->getstatuscount(); 
        ?>
    ]);

    var options = {
      title: 'Request Status'
    };

    var chart = new google.visualization.PieChart(document.getElementById('piechart'));

    chart.draw(data, options);
  }

</script>
 </head>
 <body>
  <div id="piechart" style="width: 900px; height: 500px;"> 
 </div>
 </body>
 </html>

мой класс запросов:

class userview extends dbh{
public function getstatuscount() {
        $sql = "SELECT ticketstatus, COUNT(*) as statusnumber FROM ticketpractice GROUP BY ticketstatus";
        $result = $this->connect()->query($sql);
        while ($row = $result->fetch()) {
         echo "['".$row['ticketstatus']."',".$row['statusnumber']."],"  ;
        }
    }
   }

мой класс базы данных

 class dbh
 {

private  $dbhost = "localhost";
private $dbusername = "root";
private $dbpassword = "";
private $dbname = "myphplessons";

protected function connect () {

$dsn = 'mysql:host=' . $this->dbhost . ';dbname=' . $this->dbname;
$pdo = new PDO ($dsn,$this->dbusername, $this->dbpassword);
$pdo->setAttribute (PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
return $pdo;
}

} ​​

...