2013-01-30 4 views
0

json_encode에 대한 sql 결과에서 연관 배열을 만들려고합니다. 여기 json에 대한 SQL 결과에서 PHP로 연관 배열 만들기

내 코드입니다 :

$timelineQuery = "SELECT * FROM timeline_table"; 
$contentQuery = "SELECT * FROM content_table"; 
$picQuery = "SELECT * FROM pic_table"; 

$sql = mysql_query($timelineQuery) or die(mysql_error()); 
$sql2 = mysql_query($contentQuery) or die(mysql_error()); 
$sql3 = mysql_query($picQuery) or die(mysql_error()); 

$mainArray = array(
    'timeline' => $timelineArray = array(
     'content' => $contentArray = array(
      'pictures' => $picArray = array(), 
     ), 
    ), 
); 

while($row = mysql_fetch_assoc($sql)) { 
    $timelineArray[] = $row;    
} 
while($row2 = mysql_fetch_assoc($sql2)) { 
    $contentArray[] = $row2; 
} 
while($row3 = mysql_fetch_assoc($sql3)) { 
    $picArray[] = $row3; 
} 
echo stripslashes(json_encode($mainArray)); 

그대로 내 $ mainArray을로 json_encode 경우는, 반환 된 JSON은 내가 찾고 구문을 가지고,하지만 난 추가하지 않고 배열을 채울 수 없었습니다 내 배열의 끝에. 첫째

{"timeline":{"content":{"pictures":[]}}} 

답변

4

: 다음

while($row = mysql_fetch_assoc($sql)) { 
    $timelineArray[] = $row;    
} 
while($row2 = mysql_fetch_assoc($sql2)) { 
    $contentArray[] = $row2; 
} 
while($row3 = mysql_fetch_assoc($sql3)) { 
    $picArray[] = $row3; 
} 

는 :

$mainArray = array(
     'timeline' => $timelineArray = array(
      'content' => $contentArray = array(
       'pictures' => $picArray = array(), 
      ), 
     ), 
    ); 
echo stripslashes(json_encode($mainArray)); 

당신은 빈 배열로 배열을 정의하고 상태의 갱신하지 않았다.

+0

그리고 왜 결국 어레이를 재설정하겠습니까? – Peon

+0

죄송합니다, 실수 : timeline = array ('content'=> array ('pictures'=> $ picArray())); {{timeline} : { "content": { "pictures": [}}}} 구조에 해당하므로 처음 두 쿼리를 수행 할 필요가 없습니다. –

+0

답변 해 주셔서 감사합니다. 그러나, 나는 너무 모호하게 나의 질문을 공식화했을지도 모른다. 제가 고민하고있는 것은 3 배열 또는 3 SQL 쿼리를 사용하여 3 차원 배열을 작성하는 방법입니다. PHP에서 빈 3 차원 배열을 만들고 json으로 인코딩하면 원하는 구조를 얻을 수 있습니다. – user2025462