6

私はたくさん検索して、ついにGoogleチャートコードを実行することができました. これは、データ ビューとデータ テーブルの両方を使用したコードです。

// これが chartDraw.php の私のコードです

<html>
<head>
<!--Load the AJAX API -->
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" type="text/javascript"></script>

<script type="text/javascript">

function drawChart(){
  var jsonData = $.ajax({
        url:"getdata.php",
        dataType:"json",
        async:false
        }).responseText;

//This is used when you hard code your values: static data. Here I am taking data from database so commented it.
/*var jsonData='{"cols":[{"label":"User ID","type":"string"},{"label":"Group Name","type":"string"},{"label":"Requested Nodes","type":"number"},{"label":"Actual PE","type":"number"}],"rows":[{"c":[{"v":"user 1"},{"v":"ufhpc"},{"v":1},{"v":5.000}]},{"c":[{"v":"user2"},{"v":"ufhpc"},{"v":1},{"v":7.000}]}]}';
*/
//Create our data table out of JSON data loaded from server
var data=new google.visualization.DataTable(jsonData);

//PieCharts expects 2 columns of data: a label and a value, so we need to use a DataView to restrict to 2 columns
var view=new google.visualization.DataView(data);
view.setColumns([0,3]);

//Instantiate and draw our chart, passing in some options
var chart=new google.visualization.PieChart(document.getElementById('chart_div'));
chart.draw(view,{width:400,height:240});
}

//Load the visualization API and the piechart package
google.load('visualization','1',{'packages':['corechart']});

//Set a callback to run when the google visualization API is loaded
google.setOnLoadCallback(drawChart);
</script>
</head>

<body>
        <!--Div that will hold the pie chart -->
        <div id="chart_div"></div>
</body>
</html>

//getdata.php: 接続とクエリが含まれています

<?php

mysql_connect('localhost','user','password');
mysql_select_db('dbname');

$sqlquery1="select userid,group_name,req_nodes,actualPE from jobs where userid='zhang' limit 200";

$sqlresult1=mysql_query($sqlquery1);

$table=array();
$table['cols']=array(
        array('label'=> 'User ID', type=>'string'),
        array('label'=>'Group Name', type=>'string'),
        array('label'=>'Requested Nodes', type=>'number'),
        array('label'=>'Actual PE', type=>'number')
);
$rows=array();

while($r=mysql_fetch_assoc($sqlresult1)){
        $temp=array();
        $temp[]=array('v' => $r['userid']);
        $temp[]=array('v' => $r['group_name']);
        $temp[]=array('v' =>(int) $r['req_nodes']);
        $temp[]=array('v' =>(float) $r['actualPE']);

        $rows[]=array('c' => $temp);
}

$table['rows']=$rows;

$jsonTable = json_encode($table);
//this print statement just for testing
print $jsonTable;

?>

DataViewクラスとDataTableコンストラクタの違いは何ですか? を使用DataViewしないと印刷されません。

4

1 に答える 1