2013-01-30 1 views
0

Я пытаюсь создать ассоциативный массив из sql-результатов для json_encode.Создание ассоциативного массива в PHP из sql-результатов, для json

вот мой код:

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

Если я json_encode моего $ mainArray, как это, возвращаемый 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-запросов. Я могу создать пустой трехмерный массив в PHP и кодировать его json, который затем дает мне структуру, которую я хочу. – user2025462