我想从数据库查询数据到一个json数组中,ultimalty在javascript中产生一个强制有向图。这是Json数组应该是什么样的。然而,节点可以有多个邻接关系,或者没有邻接关系,我怎样才能查询一个json数组,其中的邻接节在不同节点之间变化,并且能够根据节点的邻接数量进行调整?复杂的嵌套数组问题
Var JSON =[
{
"adjacencies": [
{
"nodeTo": "graphnode9",
"nodeFrom": "graphnode5",
"data": {}
}
],
"data": {
"$color": "#416D9C",
"$type": "star"
},
"id": "graphnode5",
"name": "graphnode5"
},
];
或者他们可以有
Var JSON =[
{
"adjacencies": [
{
"nodeTo": "graphnode9",
"nodeFrom": "graphnode5",
"data": {}
},
{
"nodeTo": "graphnode9",
"nodeFrom": "graphnode5",
"data": {}
},
{
"nodeTo": "graphnode9",
"nodeFrom": "graphnode5",
"data": {}
}
],
"data": {
"$color": "#416D9C",
"$type": "star"
},
"id": "graphnode5",
"name": "graphnode5"
},
];
或者他们不能有任何
Var JSON =[
{
"adjacencies": [],
"data": {
"$color": "#416D9C",
"$type": "star"
},
"id": "graphnode5",
"name": "graphnode5"
},
];
这里是我的尝试,到目前为止,然而,这只是产生一个JSON只允许一个邻接,我如何设置一个Json查询来调整节点的邻接数量?而只是加载数据和ID部分一次,但允许相邻变化?
这里是我的数据库结构
nodes Relationships
----- -------------
id int(11), id int(11),
name varchar(35), goingto int(11), //this is the destination node from the id relation
color varchar(7), data varchar(0) null
type varchar (12), Foreign key (id) references nodes(id)
Primary key (id)
engine = innodb
这里是我的尝试是
function getjson(){
$db = adodbConnect();
$query = "SELECT nodes.*, relationships.* FROM nodes inner JOIN relationships ON nodes.id = relationships.id";
$result = $db -> Execute($query);
while($row=$result->FetchRow())
{
$id= (float)$row['id'];
$name = $row['name'];
$color1 = $row['color'];
$type1 = $row['type'];
$to= (float)$row['goingto'];
$thumb =$row['thumb']; //image path
$array[] = array(
"adjacencies" => array(array(
"nodeTo" => "$to",
"nodeFrom" => "$id",
"data" => array())),
"data" => array(
"$"."color" => $color1,
"$"."type" => $type1),
"id" => $id,
"name" => "<img src='".$thumb."' height='25' width='25' alt='root'/><label>".$name."</label>");
}
$json = json_encode($array);
print "$json";
//return $json;
}
你的意思是你永远不会得到一个空的邻接列表?如果这是问题,请使用LEFT JOIN。 – bfavaretto
没有一切正确加载,但为每个节点加载id和数据数组一次,但保持邻接多次,同时保持整个数组的结构。 – user1902588
@ user1902588看来您已经提出了同样的问题3次。这一个,然后[这里](http://stackoverflow.com/questions/15608156/array-with-multiple-sizes-query-from-database-issue),也[这里](http://stackoverflow.com /问题/ 15714467/multideminsional阵列查询迭代-问题)。最后一个关闭了,我会推荐另一个关闭以及它没有答案/评论等。 – Sepster