2016-11-15 82 views
0

我一直在努力將PHP轉換爲JSON文件,但生成的JSON文件與通常會出現的差異很大。 該表是本低於難以將php轉換爲json文件

rid rname  mobile  email   address  opentiming  closetiming menuid  type  averagecost   image 
    1  abc  9876543212 [email protected] fdsjdsfdnm 00:10:00   00:00:00  1   asian  120   http://gjsblog.esy.es/images/download.png 
    2 abcdefc 9876543212 [email protected] qwertym  00:00:03   00:00:04  2  chinese  120   http://gjsblog.esy.es/images/The_Table.png 

PHP文件存在以下

//retrieve.php 
<?php 
include("dbconfig.php"); 
$result = @mysql_query("select * from Restaurants "); 

$response =array(); 

if(@mysql_num_rows($result)>0){ 

    $response['Restaurants'] = array(); 

    while([email protected]_fetch_array($result)){ 
     array_push($response['Restaurants'], $row); 
    } 
} 

if($result){ 
    $response['success']=1; 
    $response['message']="Records Retrieved sucessfully"; 
}else{ 
    $response['success']=0; 
    $response['message']="Retrieval Failure"; 
} 

echo json_encode($response); 

?> 

的JSON包含在列中的數據兩次,列名之前和列名後一次一次。該JSON出現

{ 
    "Restaurants": [ 
    { 
     "0": "1", 
     "rid": "1", 
     "1": "abc", 
     "rname": "abc", 
     "2": "9876543212", 
     "mobile": "9876543212", 
     "3": "[email protected]", 
     "email": "[email protected]", 
     "4": "fdsjdsfdnm", 
     "address": "fdsjdsfdnm", 
     "5": "00:10:00", 
     "opentiming": "00:10:00", 
     "6": "00:00:00", 
     "closetiming": "00:00:00", 
     "7": "1", 
     "menuid": "1", 
     "8": "asian", 
     "type": "asian", 
     "9": "120", 
     "averagecost": "120", 
     "10": "http:\/\/gjsblog.esy.es\/images\/download.png", 
     "image": "http:\/\/gjsblog.esy.es\/images\/download.png" 
    }, 
    { 
     "0": "2", 
     "rid": "2", 
     "1": "abcdefc", 
     "rname": "abcdefc", 
     "2": "9876543212", 
     "mobile": "9876543212", 
     "3": "[email protected]", 
     "email": "[email protected]", 
     "4": "fdsjdsfdnm", 
     "address": "fdsjdsfdnm", 
     "5": "00:00:03", 
     "opentiming": "00:00:03", 
     "6": "00:00:04", 
     "closetiming": "00:00:04", 
     "7": "2", 
     "menuid": "2", 
     "8": "chinese", 
     "type": "chinese", 
     "9": "120", 
     "averagecost": "120", 
     "10": "http:\/\/gjsblog.esy.es\/images\/The_Table_(restaurant)_logo.png", 
     "image": "http:\/\/gjsblog.esy.es\/images\/The_Table_(restaurant)_logo.png" 
    } 
    ], 
    "success": 1, 
    "message": "Records Retrieved sucessfully" 
} 
+0

創建第一內新陣列while循環,並添加$響應[「餐廳」 ]到該陣列。然後它推到當前數組。 –

回答

1

變化

while([email protected]_fetch_array($result)) 

while([email protected]_fetch_array($result, MYSQL_ASSOC)) 

因爲如果你只是使用第一條語句,MYSQL_BOTH將作爲默認設置,使結果陣列一樣, 。

只是一個建議,你最好使用庫MySQLi或PDO_MYSQL,因爲mysql_fetch_array已經在PHP 5.5.0否定並取消了在PHP 7.0.0