MS SQL Server データベースから php を使用して、このような「コンボ」Google チャートにフィードしようとしているこのプロジェクトについて、アドバイスを求めています。
関連データを提供する次のビューを作成しました。後で、プロジェクトごとにこれらの一連のグラフを作成する必要があります (「ProjectUniqueId」で識別されます)。
これまでに入手したすべてのドキュメントから、次の dataTable をプログラムで構築する必要があることを理解しています
var data = google.visualization.arrayToDataTable([
['Week', 'Hrs VSE', 'Hrs PII', 'Hrs VDG', 'Hrs PIA', 'Hrs TCIS', 'Forecast' ],
['2013-W20', 165, 938, 522, 998, 450, 614.6],
['2013-W21', 135, 1120, 599, 1268, 288, 682],
['2013-W22', 157, 1167, 587, 807, 397, 1200],
['2013-W23', 139, 1110, 615, 968, 215, 2000],
['2013-W24', 136, 691, 629, 1026, 366, 569.5]
]);
このページの一部として:
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load('visualization', '1', {packages: ['corechart']});
</script>
<script type="text/javascript">
function drawVisualization() {
//Raw data
var data = google.visualization.arrayToDataTable([
['Week', 'Hrs VSE', 'Hrs PII', 'Hrs VDG', 'Hrs PIA', 'Hrs TCIS', 'Forecast' ],
['2013-W20', 165, 938, 522, 998, 450, 614.6],
['2013-W21', 135, 1120, 599, 1268, 288, 682],
['2013-W22', 157, 1167, 587, 807, 397, 1200],
['2013-W23', 139, 1110, 615, 968, 215, 2000],
['2013-W24', 136, 691, 629, 1026, 366, 569.5]
]);
var options = {
title : 'Actuals vs Forecast VLU Project per Cost-Center',
vAxis: {title: ""},
//Horizontal axis text vertical
hAxis: {title: "", slantedText:true, slantedTextAngle:90},
seriesType: "bars",
series: {5: {type: "line"}},
isStacked: true
};
var chart = new google.visualization.ComboChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
google.setOnLoadCallback(drawVisualization);
</script>
私は最初にdataTable(配列の「アセンブリ」として理解している)を手動で構築しようとしました
1) 「列ヘッダー」(CcName) の配列の作成
2) 「行ヘッダー」(WeekValue) の配列の作成
3) 特定の WeekValue,CcName ... (HoursValue) の個々の値をクエリする
最後に、必要な配列を実際に構築することはできず、JSON に関するドキュメントとそれがどのように役立つかを見つけましたが、コードに実装することはできませんでした。
<?php
$myServer = "XXXXXX";
$myUser = "reportuser";
$myPass = "";
$myDB = "HOURS";
//Connection to the database
$dbhandle = mssql_connect($myServer, $myUser, $myPass)
or die("Couldn't connect to SQL Server on $myServer");
//Select a database to work with
$selected = mssql_select_db($myDB, $dbhandle)
or die("Couldn't open database $myDB");
//Declare the SQL statement that will query the database
$query = "SELECT CcName, WeekValue, SUM(HoursValue) AS HoursValue FROM viewFunctionalHoursKpi WHERE Approval='Actuals' AND ProjectUniqueId=1286 GROUP BY CcName, WeekValue";
//Execute the SQL query and return records
$result = mssql_query($query)
or die('An error occured: ' . mysql_error());
$resultArray = array();
while ($record = mssql_fetch_array($result))
{
//Fill array
$resultArray[] = $record;
}
//Output in JSON format
echo json_encode($resultArray);
//Free result set memory
mssql_free_result($result);
//Close the connection
mssql_close($dbhandle);
?>
皆さんは何をアドバイスしますか?私は間違いなく、MS SQL Server で取得した現在のビューを変更してデータの形式を変更することにオープンですが、私にとって最も難しいのは、取得したデータを php からこの js dataTable に転送する方法です (これがやり方)。
ご協力いただきありがとうございます!