2017-08-01 63 views
0

我創建了一個使用PHP的網站,我有一個儀表板。在我的儀表板中,我有一張圖表,我使用Highcharts來呈現我的數據。我在顯示數據時遇到問題。是的,我可以在Highcharts中顯示數據,但無法正確顯示。 我想我的問題在我的查詢。PHP Highcharts Group按日期

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

我得到了答案。哈哈哈哈。我認爲這很困難,但不是。

這就是我的回答:

<?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); 
} 
?> 

我刪除別名「PDATE」和使用「ENTRY_DATE」我的查詢,它爲我工作。