我想從數據庫查詢數據到一個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