[英]How to create hierarchical json using data from a psql database?
我正在使用php连接到我的psql数据库,并具有一些初始代码以连接到数据库,访问表并将列设置为数组等。但是,我一直在努力将数据转换为所需的格式,代码已经在运行。 我的输入采用Json分层数据形式,如下所示。
function getData() {
return {
"name": "data",
"children": [
{
"name": "America",
"children": [
{
"name": "MA",
"children": [
{"name": "Westborough", "order": 30},
{"name": "Southborough", "order":20}
]
},
{
"name": "NH",
"children": [
{"name": "Nashua", "order": 12}
]
},
{
"name": "CA",
"children": [
{"name": "SanFransico", "order": 17}
]
}
]
}
]
};
这是我目前使用php的代码:
<?php
// attempt a connection
$dbh = pg_connect("host=localhost dbname=sample user=postgres");
if (!$dbh) {
die("Error in connection: " . pg_last_error());
}
// execute query
$sql = "SELECT * FROM dataset";
$result = pg_query($dbh, $sql);
if (!$result) {
die("Error in SQL query: " . pg_last_error());
}
//Sets the column at 1 to an array
$arr = pg_fetch_all_columns($result, 1);
// free memory
pg_free_result($result);
// close connection
pg_close($dbh);
?>
这是数据库表的格式
提前致谢 :)
我只是为您编写一个圆顶。您需要检查一下自己
$dbh = pg_connect("host=localhost dbname=sample user=postgres");
$ret = array();
$ret['name'] = 'data';
$ret['children'] = get_chilren($dbh,0);
return json_encode($ret);
while ($line = pg_fetch_array($result)) {
}
function get_chilren($dbh,$parentid){
var $cret = array();
$sql = "select * from database where parentid=".$parentid
$cresult = pg_query($dbh, $sql);
if (!$cresult) {
echo "An error occured.\n";
exit;
}
while($chil = pg_fetch_array($cresult)){ // fetch each row
$cret['name'] = $chil['name'];
$cc = get_chilren($dbh,$chil['id']);
if(is_array($cc))
{//when it hava a child
$cret['children'] = $cc;
}else{ //not hava
$cret['order'] = $chil['order'];
}
}
return $cret;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.