2015-02-17 4 views
0

Я хочу создать строку json из двух табличных запросов в одном из многих отношений. Я сделал, как этотjson array для одного-многих отношений

$query = "SELECT id,name FROM sample1 ORDER BY id ASC" ;     
$result = mysql_query($query) or die(mysql_error()); 
$parent = array() ; 

while($row = mysql_fetch_array($result)) 
{ 
    $parent[]= array("id"=>$row['id'],"name"=>$row['name']); 
    $query1 = "SELECT id,cid,cmessage FROM sample2 WHERE id = '$row[id]' ORDER BY cid ASC" ;    
    $result1 = mysql_query($query1) or die(mysql_error()); 

    while($row1 = mysql_fetch_array($result1)) 
    { 
     $parent[] = array("id"=>$row1['id'],"cid"=>$row1['cid'],"comment"=>$row1['cmessage']); 

    } 
} echo json_encode($parent); 

это показывает выход, как этот [{"id":"1","name":"Arathy"},{"id":"1","cid":"11","comment":"hai"},{"id":"1","cid":"111","comment":"exe"},{"id":"2","name":"Dhanya"},{"id":"2","cid":"22","comment":"yes"}]

Но я хочу, формат, как, как показано ниже,

[ 
{ 
    "id": "1", 
    "name": "Arathy", 
    "details": [ 
     { 
      "id": "1", 
      "cid": "11", 
      "comment": "hai" 
     }, 
     { 
      "id": "11", 
      "cid": "111", 
      "comment": "exe" 
     } 
    ] 
}, 
{ 
    "id": "2", 
    "name": "Dhanya", 
    "details": [ 
     { 
      "id": "2", 
      "cid": "22", 
      "comment": "yes" 
     } 
    ] 
} ] 

Пожалуйста, помогите исправить

ответ

1

Он будет быть чем-то вроде,

while($row = mysql_fetch_array($result)) 
{ 
    $parent[$row['id']]= array("id"=>$row['id'],"name"=>$row['name']); 
    $query1 = "SELECT id,cid,cmessage FROM sample2 WHERE id = '$row[id]' ORDER BY cid ASC" ;    
    $result1 = mysql_query($query1) or die(mysql_error()); 

    while($row1 = mysql_fetch_array($result1)) 
    { 
     $parent[$row['id']]["details"][] = array("id"=>$row1['id'],"cid"=>$row1['cid'],"comment"=>$row1['cmessage']); 

    } 
} 
echo json_encode($parent); 

Предупреждение:Please, don't use mysql_* functions in new code. Они больше не поддерживаются and are officially deprecated. См. red box? Узнайте о prepared statements вместо этого, и используйте PDO или MySQLi - this article поможет вам решить, какой. Если вы выберете PDO, here is a good tutorial.