2012-11-01 51 views
0

讓我先說,我不知道怎麼問這個正確的問題,開始但在這裏不用...從MySQL查詢到谷歌圖表

我有金額,都附着時間的數據庫給他們。例如四行將如下所示:

2 | 1000 | 2012-11-01 12:09:09 
2 | 800 | 2012-11-01 12:10:21 
10 | 900 | 2012-11-01 12:11:36 
10 | 750 | 2012-11-01 12:12:46 

第一列是用戶。我想把它放到谷歌折線圖中,但是如何設置查詢真的很困難。

最終結果的JavaScript數組中需要的樣子:

data.addColumn('string', 'Date'); 
data.addColumn('number', 'User 2'); 
data.addColumn('number', 'User 10'); 

data.addRows([ 
    ['12:09', 1000, null], 
    ['12:10', 800, null], 
    ['12:11', 800, 900], 
    ['12:12', 800, 750] 
]); 

任何幫助或操縱以上,歡迎這一點。我想了幾個PHP的循環,但有點卡住...

回答

0

在文檔的頂部將這個:

<?php 

$dsn = 'mysql:dbname=myDbName;host=127.0.0.1'; 
$user = 'dbUserName'; 
$password = 'dbPassword'; 

$pdo = new PDO($dsn, $user, $name); 

$result = $pdo->query('select * from YourAmountsTableName'); 
foreach ($result as $row) { 

$rows[] = "['{$row['time']}',{$row['ammount']},{$row['yourThirdValue']}]"; 

} 
$rowsString = implode(',',$rows); 
?> 

現在在你的HTML文檔,或者你的JavaScript,呼應$ rowsString在排的地方:

data.addRows([<?php echo $rowsString; ?>]); 

調整給出的名稱,密碼等代碼。我沒有測試代碼,因此請檢查是否沒有引號丟失或其他拼寫錯誤。至於谷歌圖表, https://developers.google.com/chart/interactive/docs/examples?hl=pl 有很好的例子

+0

感謝您的反應PiotrN,我可能應該提到它可能有1個用戶或1000個用戶,這不是固定在兩個。所以列不固定。也沒有第三筆金額,這取自數據庫中的下一行。 – jimbo

+0

它會合並儘可能多的結果,但不僅限於2個。用戶在行中,而不在列,或者我錯過了什麼? 如果您需要彙總用戶數據,請在SQL中執行此操作,對於合併其他表中的列也是如此。 – PiotrN

+0

用戶需要在谷歌圖表工作列。如果每一行都遵循該行,那將會很好並且很容易。對於一行將是['日期','user1金額','user2金額'] – jimbo