如何使用不同的值从第1天到第31天制作条形图?

时间:2014-10-18 10:55:44

标签: javascript php mysql charts highcharts

我有一些问题。 我想在1-31(本月)xAxis = day制作条形图

这是我的表:http://prntscr.com/4xaljv

案例:我的平均价格执行促销价:1.000.000

我如何使用该数据制作这样的条形图: http://prntscr.com/4xal4p

任何人都可以帮助或对此案有所了解吗?

我尝试使用高图表并对每个日期的值产生一些问题。

这是我的代码:

<script type="text/javascript">
     var chart1; // globally available
  $(document).ready(function() {
        chart1 = new Highcharts.Chart({
           chart: {
              renderTo: 'container',
              type: 'column'
           },   
           title: {
                enabled: false
           },
           xAxis: {
              categories: ['1']
           },
           legend: {
                    enabled: false
          },
           yAxis: {
              title: {
                 text: 'Jumlah Penduduk'
              }
           },
                series:             
              [

              <?php

                for ($day=1; $day <= $num ; $day++) {
                  while($k<count($tglevent)){
                    if($day==$tglevent[$k]){
                        $promo = $hargapromo[$k];
                        break;
                    }
                    $k++;
                }
                if ($hargapromo[$k] != NULL || $hargapromo[$k] > 0) {
                    $harga_promo = ($promo+$data_rata2->average)/2;
                }else{
                    $harga_promo = $data_rata2->average;
                }
                 ?>
                    {
                      name: [<?= $day ?>],
                      data: [<?= $data_rata2->average ?>]
                   },
                  <?php
                }
              ?>
  ]
  });
  });   
  </script>

1 个答案:

答案 0 :(得分:1)

你的SQL应该是这样的:

SELECT date, avg(price) FROM myTable GROUP BY 1

这将为您提供每日平均价格,无需(更快)在您的计划中计算它。

请注意,您也可以使用MySQL数据函数:

SELECT year(date), month(date), day(date), avg(price) FROM myTable GROUP BY 1,2,3