4

重複の可能性:
JSONエンコードMySQLの結果

phpを使用して以下のようなjsonオブジェクトを作成したいと思います。結果のSQLクエリからの応答として文字列を返します。

{"Orders":[  
            {"DeliveryId":"DeliveryId","CustomerName":"CustomerName","PhoneNumber":"PhoneNumber","Address":"Address"},  
            {"DeliveryId":"DeliveryId","CustomerName":"CustomerName","PhoneNumber":"PhoneNumber","Address":"Address"}               
]
}

私のコード

<?php
mysql_connect("mysql12.000webhost.com","a4602996_longvan","longvan2012");
mysql_select_db("a4602996_lv"); 
$id=$_POST[user];
$sql=mysql_query("select * from testlongvan where Status = 'PACKED'" ); 

$json = array();
if(mysql_num_rows($sql)){
while($row=mysql_fetch_row($sql)){
$json['Orders'][]=$row;
}
}

//while($row=mysql_fetch_assoc($sql))
//$output[]=$row;
print(json_encode($json)); 
mysql_close(); 
?>

しかし、私のコードを使用すると、結果は私が期待したものではありません。

{"注文":[["longvan"、 "10/12/2012"、 "Be34433jh"、 "Long Van"、 "115 Pham Viet Chanh、quan Binh Thanh"、 "http://longvansolution.tk/image/ sample.jpg "、" PACKED "、" 0909056788 "]、[" takeshi "、" 24/12/2012 "、" BF6464633 "、" Vn-zoom "、" 16 nguyen cuu van、quan binh thanh "、" http ://longvansolution.tk/image/hoadon3.jpg "、" PACKED "、" 098897657 "]]}

手伝って頂けますか?

4

1 に答える 1

14

フィールド名と値を指定するには、行ごとに配列を作成する必要があります。

$json['Orders'][] = array('DeliveryId' => $row[0], 'CustomerName' => $row[1], ...);

または、テーブルの列名がJSONで使用したいものとまったく同じである場合は、mysqli_fetch_assoc()関数を使用します。

$rows = array();
while($r = mysqli_fetch_assoc($sql)) {
    $rows[] = $r;
}
$data = array('Orders' => $rows);
print json_encode($data);
于 2012-12-19T03:31:21.317 に答える