简体   繁体   English

Google饼图+ PHP + MySQL

[英]Google Pie Chart + PHP + mySQL

Thanks for mbelton. 感谢姆伯尔顿。 My code works good now, and I also modified the following code I post. 我的代码现在运行良好,并且还修改了我发布的以下代码。

I'm trying to use Google Pie chart to perform the year of sales. 我正在尝试使用Google饼图执行销售年份。 First I have HTML file which to let user choose the year they wish to review; 首先,我有HTML文件,可让用户选择他们希望查看的年份; Second, based on the $year be selected, I code PHP to connect to mysql to grab related sales data; 其次,基于选择的年份,我编写PHP以连接到mysql以获取相关的销售数据; Third I create a pieData table to store the String Quarter and double sales number; 第三,我创建一个pieData表来存储String Quarter和double销售数量; and then JavaScript to get pie char. 然后用JavaScript来获取饼状字符。 I run the code doesn't show any errors but I don't see pie chart showing up. 我运行的代码没有显示任何错误,但没有看到饼图显示。 Can please someone tell me where to modify to make it work? 能否请别人告诉我在哪里进行修改以使其起作用? Thanks. 谢谢。

 $year = $_POST['year'];  
 $mysqli = mysqli_connect("root", "account", "passwd", "testDB")
      or die(mysqli_error());
 $query = "SELECT Q1,Q2,Q3,Q4 from sales where year LIKE '$year'";
 $result = mysqli_query($mysqli, $query) or die(mysqli_error($mysqli));

 /*get the values of each quarter, and store in new table:pieData.
 * if user choose year of 2012, then the new table should look like:
 * Quarter     Number
 * ------------------
 * Q1         127.24
 * Q2         106.54
 * Q3          88.04
 * Q4         120.89
*/
 while ($info = mysqli_fetch_array($result)) {
               $Q1 = $info['Q1'];
               $Q2 = $info['Q2'];
               $Q3 = $info['Q3'];
               $Q4 = $info['Q4'];

            }

 $pieData = array(
                  array('Quarter', 'Number'),
                  array('Q1', (double)$Q1),
                  array('Q2', (double)$Q2),
                  array('Q3', (double)$Q3),
                  array('Q4', (double)$Q4)
    );

 $jsonTable = json_encode($pieData);

 <script type="text/javascript" src="http://www.google.com/jsapi"</script>
 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
 <script type="text/javascript">
        //load package
        google.load("visualization", "1", {packages: ["corechart"]});
        google.setOnLoadCallback(drawChart);

        function drawChart() {
            // Create and populate the data table.
            var data = google.visualization.arrayToDataTable(
                <?php echo $jsonTable; ?>

            );


            var options = {
                title:"Sales Pie"
            };

            // Create and draw the visualization.
            var chart = new google.visualization.PieChart(document.getElementById("piechart"));
            chart.draw(data, options);
        }

    </script>

I think error in your code is in opening/closing <script tag and in .arrayToDataTable you need to remove square brackets [ ] 我认为您代码中的错误是在打开/关闭<script标签和.arrayToDataTable您需要删除方括号[]

Change code to: 将代码更改为:

<?php

 $Q1 = 127.24;
 $Q2 = 106.54;
 $Q3 = 88.04;
 $Q4 = 120.89;

 $pieData = array(
              array('Quarter', 'Number'),
              array('Q1', (double)$Q1),
              array('Q2', (double)$Q2),
              array('Q3', (double)$Q3),
              array('Q4', (double)$Q4)
);

 $jsonTable = json_encode($pieData);
?>  

<html>
  <head>
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
    <script type="text/javascript">
  google.load("visualization", "1", {packages:["corechart"]});
  google.setOnLoadCallback(drawChart);
  function drawChart() {

    var data = google.visualization.arrayToDataTable(
        <?php  echo $jsonTable; ?>
    );

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

    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>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM