0

この例のように、1 つの 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 に答える