我正在嘗試爲公司Intranet網頁設置一些簡單的Amcharts圖。在過去的兩週裏,我創建了HTML/JS,並使用Amcharts製作了一個漂亮的圖形(HTML中用於演示的硬編碼數據)。我還安裝了XAMPP並創建了一個MySQL數據庫,裏面填充了表格和一些從csv文件導入的數據。從MySQL填充PHP數組以供Amcharts使用
到目前爲止,一切工作正常 - 我可以顯示漂亮的圖形,我可以收集數據以提供數據到圖形。但是,我一直在從兩端處理這個問題(將源數據存入數據庫並將數據顯示在網頁上的圖表中)。現在我需要加入這兩個端點,所以我可以使用來自MySQL的數據提供Amcharts。
我知道我需要使用PHP從MySQL獲取數據,並將其放入可以被Amcharts使用的數組中,但我的PHP知識非常基礎,而且我正在爲代碼苦苦掙扎。
我所擁有的是成功連接到MySQL並提取數據以在瀏覽器中顯示的PHP代碼。我只是不知道如何將這些數據轉換成Amcharts繪製圖形所需格式的多維數組。
如果你們可以給我一些幫助並填寫缺失的部分,這將是非常好的。我有一些關於創建數組邏輯的僞代碼作爲'真實'php代碼的基礎。
這是用於填充所述陣列的僞代碼:
;字符集= UTF-8' , '', '',陣列(PDO :: ATTR_EMULATE_PREPARES =>假, PDO :: ATTR_ERRMODE = > PDO :: ERRMODE_EXCEPTION));
$stmt = $db->query("SELECT * FROM <mytable> WHERE <mycondition>"); $prevweek = "9999"; $headrowdone = 0; while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { if ($prevweek < $row['WeekNumber']) { // New week so write out Category X Label ('Week') with the week number of the following data rows chartData.push($DataRow); $headrowdone = 0; } if (!$headrowdone) { $DataRow = "Week: "+$row['WeekNumber']; $headrowdone = 1; } // Write out the X-Axis Category value and the Y-Axis value $DataRow = $DataRow+$row['XAxisCategory']+": "+$row['YAxisCategory']; $prevweek = $row['WeekNumber']; } chartData.push($DataRow); ?>
的SQL表看起來像:
CREATE TABLE(WeekNumber VARCHAR(4),XAxisCategory VARCHAR(50),YAxisValue整數); '1301','A',10'1301','B',20'1301','C',24 '1302','A',11'1302','11''',' 'B',22'1302','C',27'1303','A',14'1303','B',23 '1303','C',28 ...等
爲amcharts數據陣列需要看起來像:
變種chartData = [{周: 「1301」, A:10, B:20, C:24 },{ 周: 「1302」, 甲:11, B:22, C:27 },{ 周: 「1303」, 甲:14, B:23, C:28 ....等 }];
'json_encode'是你想說的功能;) – 2013-04-22 15:34:09
編輯答案,好點,thx。 – Cups 2013-04-22 16:10:41