首页 > 解决方案 > 使用 PHP 来自 SQL Server 数据库的 Google 图表

问题描述

谁能告诉我我在这里做错了什么?

连接到数据库

$sql = "SELECT name , pname FROM [org]";    

$stmt = sqlsrv_query( $conn , $sql  );    

if ( $stmt )    
{    

}     
else     
{    
 echo "Error in statement execution.\n";    
 die( print_r( sqlsrv_errors(), true));    
 }       
?>    

尝试来自谷歌图表的示例代码

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

   function drawChart() {
    var data = new google.visualization.DataTable();
    data.addColumn('string', 'Name');
    data.addColumn('string', 'Manager');
    data.addColumn('string', 'ToolTip');

    data.addRows([

         <?php
               while( $row = sqlsrv_fetch_array( $stmt))    
     {  
                         echo "['".$row[0]."', '".$row[1]."' ,''],";
                     }

             ?>
            ]);

当我运行它时,页面上没有任何内容。

标签: phpsql-servergoogle-visualization

解决方案


尝试使您的代码像这样。

<?php
$array = array();
while( $row = sqlsrv_fetch_array( $stmt))    
{  
    $array[] = array($row[0],$row[1]);
}
$addrows = json_encode($array);

?>

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

function drawChart() {
    var data = new google.visualization.DataTable();
    data.addColumn('string', 'Name');
    data.addColumn('string', 'Manager');
    data.addColumn('string', 'ToolTip');

    data.addRows(<?php echo $addrows; ?>);

推荐阅读