Php 使用Google图表生成静态数据图形

Php 使用Google图表生成静态数据图形,php,graph,google-visualization,Php,Graph,Google Visualization,我想为我的静态数据生成图形。我用它来做这件事。这是谷歌图表代码 <html> <head> <script type="text/javascript" src="https://www.google.com/jsapi"></script> <script type="text/javascript"> google.load("visualization", "1", {packages:["core

我想为我的静态数据生成图形。我用它来做这件事。这是谷歌图表代码

<html>
  <head>
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
      google.load("visualization", "1", {packages:["corechart"]});
      google.setOnLoadCallback(drawChart);
      function drawChart() {
        var data = google.visualization.arrayToDataTable([
          ['Task', 'Hours per Day'],
          ['Work',     11],
          ['Eat',      2],
          ['Commute',  2],
          ['Watch TV', 2],
          ['Sleep',    7]
        ]);

        var options = {
          title: 'My Daily Activities'
        };

        var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
        chart.draw(data, options);
      }
    </script>
  </head>
  <body>
    <div id="chart_div" style="width: 900px; height: 500px;"></div>
  </body>
</html>

load(“可视化”、“1”、{packages:[“corechart”]});
setOnLoadCallback(drawChart);
函数绘图图(){
var data=google.visualization.arrayToDataTable([
[“任务”,“每天工作小时数”],
[Work',11],
[Eat',2],
[‘通勤’,2],
[“看电视”,2],
[Sleep',7]
]);
变量选项={
标题:“我的日常活动”
};
var chart=new google.visualization.PieChart(document.getElementById('chart_div');
图表绘制(数据、选项);
}
但我想把我的代码放在这里。我不知道怎么做。这是我的密码

<?php
echo '<div align="center" style="width:100%; padding-top:20px;">
<table width="100%" cellspacing="0" cellpadding="0" border="0">
      <tr>
        <td class=tddash>10 latest purchase orders</td>
      </tr>
      <tr>
        <td>';
        $SQL = 'SELECT purchorders.orderno,
                        suppliers.suppname,
                        purchorders.orddate,
                        purchorders.deliverydate,
                        purchorders.initiator,
                        purchorders.requisitionno,
                        purchorders.allowprint,
                        purchorders.status,
                        suppliers.currcode,
                        currencies.decimalplaces AS currdecimalplaces,
                        SUM(purchorderdetails.unitprice*purchorderdetails.quantityord) AS ordervalue
                    FROM purchorders 
                    INNER JOIN purchorderdetails 
                    ON purchorders.orderno = purchorderdetails.orderno
                    INNER JOIN suppliers
                    ON purchorders.supplierno = suppliers.supplierid
                    INNER JOIN currencies 
                    ON suppliers.currcode=currencies.currabrev
                    WHERE purchorders.orderno=purchorderdetails.orderno
                    GROUP BY purchorders.orderno,
                        suppliers.suppname,
                        purchorders.orddate,
                        purchorders.initiator,
                        purchorders.requisitionno,
                        purchorders.allowprint,
                        purchorders.status,
                        suppliers.currcode,
                        currencies.decimalplaces LIMIT 5';
                        $SalesOrdersResult2 = DB_query($SQL,$db);
                        $Total = 0;
                echo '<table width="100%" celpadding="2" class="selection">';
                        echo '<tbody><tr><th> Supplier </th><th>Order Date</th><th>Delivery Date</th><th>Initiator</th><th>Order Total</th><th>Status</th></tr></tbody> ';
                        $k=0;
                while ($row = DB_fetch_array($SalesOrdersResult2))
                    //while ($row = mysql_fetch_array($SalesOrdersResult))
                    {
                        if ($k == 1){
            echo '<tr class="EvenTableRows">';
            $k = 0;
        } else {
            echo '<tr class="OddTableRows">';
            $k = 1;
        }
                        $FormatedOrderValue2 = locale_number_format($row['ordervalue'],$row['currdecimalplaces']);
                        $Total += $row['ordervalue'];
                        //$FormatedOrderValue1 = locale_number_format($myrow['ordervalue'],$_SESSION['CompanyRecord']['decimalplaces']);
                        $FormatedOrderDate1 = ConvertSQLDate($row['orddate']);
                        $FormatedDelDate1 = ConvertSQLDate($row['deliverydate']);

                        echo ' <td> ' . $row['suppname'] . ' </td>';
                        echo ' <td>$FormatedOrderDate1</td><td>$FormatedDelDate1</td><td> ' . $row['initiator'] . ' </td><td>$FormatedOrderValue2</td><td> ' . $row['status'] . ' </td> ';

                    }
        echo '<tr><td colspan="3">Total---</td><td colspan="2">$Total</td></tr></tbody>';           
        echo '</table></td>';


     echo' </tr>
    </table>

</div>';

您的行
view.setColumns([0,3])
告诉Google图表仅显示数据中的第一列和第四列。将要显示的列添加到数组。

您尝试过什么吗?有错误吗?错误的图形?没有图表?是的,我已经编辑了上面的代码,我没有得到任何结果:(,如果我将
,它会再次显示空白屏幕。这可能会对您有所帮助:我已经尝试过了。它非常有用。我可以显示图形,但只能显示两列。不明白为什么第三列无法显示。我已经编辑了我的代码,如果我使用
查看.setColumns([0,4]),请您查看一下。)
,它不会只显示图表:(我理解您有点困难。从我在您的代码中看到的情况来看,您可能想要,
查看.setColumns([0,3,4])
。试试看。事实上,没有什么显示正确,不知道发生这种情况的原因:(你能发布由你的PHP生成的JS吗?几乎不可能将PHP调试到某个随机互联网用户的数据库中。此外,你使用的是什么浏览器。我已经在上面粘贴了我的java脚本,并且正在使用Chrome。)
echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" type="text/javascript"></script>';
   echo ' <script type="text/javascript">


      function drawChart() {
        var jsonData = $.ajax({
          url: "1getData.php",
          dataType:"json",
          async: false
          }).responseText;

          alert(jsonData);



       var data = new google.visualization.DataTable(jsonData);
         var view = new google.visualization.DataView(data);
         view.setColumns([0, 3]);
         var chart = new google.visualization.ColumnChart(document.getElementById("chart_div"));
      chart.draw(view, {width:400, height:240});
      }
 google.load("visualization", "1", {packages:["corechart"]});
  google.setOnLoadCallback(drawChart);

</script>';
echo '</head>'; 
<div id="chart_div" ></div>
<?php

$PageSecurity=0;
include('includes/session.inc');
if (!isset($RootPath)){
        $RootPath = dirname(htmlspecialchars($_SERVER['PHP_SELF']));
        if ($RootPath == '/' or $RootPath == "\\") {
            $RootPath = '';
        }
    }

    $SQL = "SELECT workorders.wo, woitems.stockid, stockmaster.description, stockmaster.decimalplaces, woitems.qtyreqd, woitems.qtyrecd, workorders.requiredby, workorders.startdate
FROM workorders
INNER JOIN woitems ON workorders.wo = woitems.wo
INNER JOIN stockmaster ON woitems.stockid = stockmaster.stockid
ORDER BY workorders.wo";
                    $searchresult = DB_query($SQL, $db);
                    $table=array();

                    $table['cols']=array(
                    array('label'=>'ITEM', type=>'string'),
                    array('label'=>'Description', type=>'string'),
        array('label'=> 'QTY Required', type=>'number'),
        array('label'=>'QTY Outstanding', type=>'number')

);
$rows=array();


                    while ($row = DB_fetch_array($searchresult))
                    {

            $qreq = locale_number_format($row['qtyreqd'],$row['decimalplaces']);
            $qout = locale_number_format($row['qtyreqd']-$row['qtyrecd'],$row['decimalplaces']);


                        $temp=array();

        $temp[]=array('v' => $row['stockid']);
        $temp[]=array('v' => $row['description']);
        $temp[]=array('v' => $row['qtyreqd']);

        $temp[]=array('v' => ($row['qtyreqd']-$row['qtyrecd']));

        $rows[]=array('c' => $temp);


                    }
                    $table['rows']=$rows;

$jsonTable = json_encode($table);
print $jsonTable;




?>
<script type="text/javascript">


      function drawChart() {
        var jsonData = $.ajax({
          url: "1getData.php",
          dataType:"json",
          async: false
          }).responseText;

          alert(jsonData);



       var data = new google.visualization.DataTable(jsonData);
         var view = new google.visualization.DataView(data);
         view.setColumns([0,3]);

         var chart = new google.visualization.ColumnChart(document.getElementById("chart_div"));
      chart.draw(view, {width:400, height:240});

      }
 google.load("visualization", "1", {packages:["corechart"]});
  google.setOnLoadCallback(drawChart);

    </script>