0

我正在尝试从一个 mysql 表中生成嵌套的 json 数据,如本例所示。

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($row=@mysql_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 );

我无法让它工作。请帮助我了解多维数组的正确语法。

4

1 回答 1

1

您不能直接在主数组上对“子数组”进行 json_encode

您必须在 while 中为每个数组执行 json_encode:

$data[] = json_encode(array (

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

然后你还必须像你已经做的那样对主数组进行编码。

于 2012-09-19T11:28:20.900 回答