我正在使用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);

?>

这是数据库表的格式

数据库表

提前致谢 :)

===============>>#1 票数:0 已采纳

我只是为您编写一个圆顶。您需要检查一下自己

$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;
}

  ask by user2159121 translate from so

未解决问题?本站智能推荐: