2012-02-24 73 views
0

爲了在網格中輸出它,我必須有像如下所示的JSON語法:語法JSON陣列

{ 
"data": [ 
    { 
     "SupplierID": 1, 
     "CompanyName": "Exotic Liquids", 
     "ContactName": "Charlotte Cooper", 
     "ContactTitle": "Purchasing Manager", 
     "Address": "49 Gilbert St.", 
     "City": "London", 
     "Region": null, 
     "PostalCode": "EC1 4SD", 
     "Country": "UK", 
     "Phone": "(171) 555-2222", 
     "Fax": null, 
     "HomePage": null 
    }, 
    { 
     "SupplierID": 2, 
     "CompanyName": "New Orleans Cajun Delights", 
     "ContactName": "Shelley Burke", 
     "ContactTitle": "Order Administrator", 
     "Address": "P.O. Box 78934", 
     "City": "New Orleans", 
     "Region": "LA", 
     "PostalCode": "70117", 
     "Country": "USA", 
     "Phone": "(100) 555-4822", 
     "Fax": null, 
     "HomePage": "#CAJUN.HTM#" 
    },....more data... 
     ] 
} 

這是我使用的代碼:

mysql_connect('localhost','root','')or die(mysql_error()); 
mysql_select_db('testdb')or die(mysql_error()); 
$result = mysql_query("select * from city"); 
$data[]=array(); 
while($rows=mysql_fetch_array($result,MYSQL_ASSOC)){ 
$jsondata=json_encode($rows); 
echo $data[$jsondata]; 
} 

但我有一定的錯誤。 Notice: Undefined index:

我怎樣才能解決這個問題?,感謝

回答

1

您編碼數據過早。通常你應該構建整個多維陣列,然後去編碼它

mysql_select_db('testdb') or die(mysql_error()); 
$result = mysql_query("select * from city"); 

$data = array('data' => array()); 
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
    $data['data'][] = $row; 
} 

echo json_encode($data); 
+0

是啊!多數民衆贊成它,我忘記了一個多陣列多麼愚蠢的我。謝謝.. – tomexsans 2012-02-24 14:41:07

1

你需要的編碼數據添加到陣列第一

$data =array(); 
while($rows=mysql_fetch_array($result,MYSQL_ASSOC)){ 
$jsondata=json_encode($rows); 
$data[] = $jsondata; 
} 

現在你可以重複整個事情(有可能是一個更簡單的方法)

echo explode($data, ','); 

另外,我想你可能能夠一次編碼整個數組。