我使用D3制作一些图表
为每个查询手动形成一个 json 似乎有点反直觉
有一个更好的方法吗?
还是为每个图表制作一个 json php 脚本并尝试让我的数据适合,或者我可以获得一个通用的 php 脚本来配置从 sql 输出的 json?
这有什么难的?
$sql = "SELECT field1, field2, field3, ....";
$result = mysql_query($sql) or die(mysql_error());
$data = array();
while($row = mysql_fetch_assoc($result)) {
$data[] = $row;
}
echo json_encode($data); // <--- was that so hard?
很简单,只是json_encode
使用函数的结果数组。
header('Content-type: application/json'); //for cooperation with D3
function getJsonChartResults($tablename,$columns = Array())
{
$fields = count($columns) == 0 ? "*" : implode(",", $columns);
$dbh = new PDO('mysql:host='.DATABASE_HOST.';dbname='.DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD);
$results = $dbh->query("SELECT ".$fields." FROM ".$tablename);
$dbh = null;
return json_encode($results);
}
echo getJsonChartResults("Results"); //Get data for all collumns
echo getJsonChartResults("Results",Array("id","key","value")); //Get data for specified collumns