dssk35460 2015-11-08 06:32
浏览 44
已采纳

谷歌饼图+ 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. First I have HTML file which to let user choose the year they wish to review; Second, based on the $year be selected, I code PHP to connect to mysql to grab related sales data; Third I create a pieData table to store the String Quarter and double sales number; and then JavaScript to get pie char. 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>
  • 写回答

1条回答 默认 最新

  • dqask02082 2015-11-08 08:54
    关注

    I think error in your code is in opening/closing <script tag and in .arrayToDataTable you need to remove square brackets [ ]

    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>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了