2016-03-19 63 views
0

我有一個表叫flagged_posts其中包含以下行:在HTML中添加grahps基於數據從數據庫(PHP)

id 
thought_id (id of the post being flagged) 
user_id (id of the user who is flagging the post) 

我想實現的圖形,其(現在)會顯示有多少檢舉帖子發生在當前日期(x軸將顯示日期,即星期一,星期二等,y-xis將顯示事件數)。

我看過charts.js但是,我不確定這些圖表是否可以基於數據庫數據使用。即如果星期一有10個標記的事件,$mon_flagged = 10,那麼使用該變量在圖中顯示數據?或者以另一種方式從db自動獲取數據?

回答

0

https://www.amcharts.com/tutorials/using-php-to-hook-up-charts-to-mysql-data-base/You首先需要將數據構建到一個數組中,該數組將以圖表庫的有用格式生成。

選擇了相關數據後,它格式化到一個數組是這樣的:

function formatDataForChartsJs($result){ 
    while ($row = mysql_fetch_assoc($result)) { 
     if($row['post_is_flagged']) {  
      $data[$row['date_created']] += 1; 
     } 
    } 
    return $data 
} 

那麼你應該結束了適用於你的JavaScript圖表庫使用的磁盤陣列。事情是這樣的:

$data = [ 
    2016-03-7 => 10 
    2016-03-08 => 15 
    ... 
] 

然後你需要了解你將如何把數據傳送到前端,使您可以利用JavaScript圖表庫使用您的數據。

正常的做法是將你的php數據變量作爲json字符串進行編碼。

$data = fetchData(); 
$formattedData = formatDataForChartsJs(); 
$dataAsJsonString = json_encode($formattedData); 

然後在您的視圖:

<script type=text/javascript> 
var graphData = <?php echo $dataAsJsonString ?> 
//use your graph data variable with chart.js or other javascript graph library 
</script> 

有一個很好的教程在這裏,但我會用json_encode,而不是他們的方法來打印一個JSON字符串建議。

https://www.amcharts.com/tutorials/using-php-to-hook-up-charts-to-mysql-data-base/