2012-06-03 4 views
0

Я пытаюсь создать вложенные данные json, как в этом примере, из одной таблицы mysql.Создание многомерного массива из одной таблицы mysql

var data = { 
"62" : { 
    "section" : "bodyImage", 
    "img" : "imageurl/image62.png", 
    "label" : "blue", 
    "price" : "100" 
}, 
"63" : { 
    "section" : "bodyImage", 
    "img" : "imageurl/image63.png", 
    "label" : "red", 
    "price" : "120" 
} 
} 

62 и 63 находятся в строке data_id в следующей таблице:

+-----------+------------+-------------------------+-------+---------+ 
| data_id | section | img    | label | price | 
+-----------+------------+-------------------------+-------+---------- 
| 62  | bodyImage | imagpath/image62.png | blue | 100  | 
| 63  | bodyImage | imagpath/image62.png | red | 120  | 
+-----------+------------+-------------------------+-------+--------- 

+ 

Это файл PHP с запросом:

$result = mysql_query("SELECT data_id, section, img, label, price FROM table WHERE active != 'no'"); 

$data = array(); 

while([email protected]_fetch_object($result)) { 

$data[] = array (

    'section' => $row['sub_section'], 
    'img' => $row['big_image'], 
    'label' => $row['label_client_en'], 
    'price' => $row['price'] 

); 

} 
echo json_encode($data); 

Я не могу заставить его работать. Пожалуйста, помогите мне с правильным синтаксисом для многомерного массива.

ответ

1

Вы не можете json_encode «вложенные массивы» непосредственно на основной массив

Вы должны сделать json_encode для каждого массива в ваше время:

$data[] = json_encode(array (

'section' => $row['sub_section'], 
'img' => $row['big_image'], 
'label' => $row['label_client_en'], 
'price' => $row['price'] 
)); 

И тогда вы должны закодировать основной массив, как вы уже делать.

Смежные вопросы