PHP Highcharts Group按日期

时间:2017-08-01 01:24:58

标签: javascript php highcharts

我使用php创建一个网站,我有一个仪表板。在我的仪表板中,我有一个图表,我使用Highcharts来渲染我的数据。我在显示数据时遇到问题。是的我可以在Highcharts中显示数据,但我无法正确显示。 我想我的查询有问题。

Dashboard

正如您在我的信息中心中看到的那样。 2017年8月1日是最新日期,但其位置较旧。现在我想要的是最新日期是在前面或者更早的日期之前。

Dashboard2

这是我的问题:

<?php
require_once('includes/database.php');
$stmt = mysqli_prepare($con, "SELECT date_format(entry_date, '%d-%b-%y') 
as pDate, sum(doc_count) as pAmount FROM report_details GROUP BY pDate 
DESC");
$result = array('day' => array(), 'amount' => array());
if ($stmt) {
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $day, $amount);
  while (mysqli_stmt_fetch($stmt)) {
      $result['day'][] = $day;
      $result['amount'][] = (int)$amount;
  }
  mysqli_stmt_close($stmt);
}
?>

这是我的Highcharts:

<script type="text/javascript">
   window.onload = function () {
    var chart = new Highcharts.Chart({
       chart: {
        renderTo: 'container',  
             backgroundColor: {
             linearGradient: [0, 0, 500, 500],
             stops: [
               [0, 'rgb(38,50,56)'],
               [1, 'rgb(84,110,122)']
             ]
           },      
              type: 'line',
              borderColor: '#37474f',
              borderWidth: 2,
                },
        title: {
            text: 'Document Saved Per day',
            style:{
            font: 'bold 25px "Trebuchet MS", Verdana, sans-serif',
            color: 'white'
            }
        },
        xAxis: {
            max:13,
            categories: <?php echo json_encode($result['day']) ?>,
            crosshair: true,
            labels: {
            style: {
                color: 'white',
                font: 'bold 13px "Trebuchet MS", Verdana, sans-serif'
            }
        }
        },
        yAxis: {
          min:0,
          max:100,
           labels: {
            style: {
                color: 'white',
                fontSize: '15px'
            }
        },
        gridLineColor: 'white',
        title: {
          text:'Documents',
          style: {
            color:'white',
             font: 'bold 20px "Trebuchet MS", Verdana, sans-serif'
          }
        }
      },
        plotOptions: {
            column: {
                pointPadding: 0.2,
                borderWidth: 0
            }
        },
        series: [{
            color: '#85DEFC',
            name: 'Documents',
            data: <?php echo json_encode($result['amount']) ?>
        }]
    });
};
</script>

1 个答案:

答案 0 :(得分:1)

我得到了答案。我认为这很困难但不是。

这是我的回答:

<?php
require_once('includes/database.php');
$stmt = mysqli_prepare($con, "SELECT date_format(entry_date, '%d-%b-%y'), 
sum(doc_count) as pAmount FROM report_details GROUP BY entry_date 
DESC");
$result = array('day' => array(), 'amount' => array());
if ($stmt) {
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $day, $amount);
while (mysqli_stmt_fetch($stmt)) {
  $result['day'][] = $day;
  $result['amount'][] = (int)$amount;
}
mysqli_stmt_close($stmt);
}
?>

我删除别名&#39; pDate&#39;并使用了&#39; entry_date&#39;我的查询,它适用于我。