2015-04-07 2 views
1

У меня есть PHP-скрипт, который извлекает некоторые данные из моей базы данных, и я хочу закодировать его в json для обработки в моем приложении для Android. Я хочу, чтобы результаты были такими:json_encode в PHP не возвращает никаких результатов

{ 
    "part": [ 
     { 
      "partNo": "value", 
      "partName": "value", 
      "shortDesc": "value", 
      "longDesc": "value", 
      "image": "value" 
     }, 
     { 
      "partNo": "value", 
      "partName": "value", 
      "shortDesc": "value", 
      "longDesc": "value", 
      "image": "value" 
     } 
    ], 
    "success": 1 
} 

Я использую следующий PHP-скрипт.

// array for JSON response 
$response = array(); 

// execute query based on specified user input 
$result = mysql_query($sql) or die(mysql_error()); 

// check to see if results were found 
if (mysql_num_rows($result) > 0) { 
    //create a part array in $response to hold the part details 
    $response['part'] = array(); 
    while ($row = mysql_fetch_array($result)) { 
     //create an array for the part details 
     $part = array(); 
     $part['partNo'] = $row['partNo']; 
     $part['partName'] = $row['partName']; 
     $part['shortDesc'] = $row['shortDesc']; 
     $part['longDesc'] = $row['longDesc']; 
     $part['image'] = "data:image/jpeg;base64,".base64_encode($row['image']); 

     // put the array results for a single part in $response 
     array_push($response['part'], $part); 
    } 
    // add the code for success to $response 
    $response['code'] = 1; 

    // and send it in json 
    echo(json_encode($response)); 
    //print_r($response); 
    //print_r(json_encode($response)); 
} else { 
     //no results found 
     $response['code'] = 0; 
     $response['message'] = "No part found!"; 
     echo json_encode($response); 
} 

?> 

Я не получаю никакого ответа с echo (json_encode($response)); или print_r(json_encode($response));. Но когда я делаю print_r($response);, я получаю ответ!

Array ([part] => Array ([0] => Array ([partNo] => value [partName] => value [shortDesc] => value [longDesc] => value [image] => data:image/jpeg;base64,/9j/4QAYRXhpZgAAS.../9k=)) [code] => 1) 

Может ли кто-нибудь пролить свет на это? Почему он не работает с json_encode?

ответ

1

Просто используйте для возврата $response в формате JSON:

header('Content-type: application/json'); 
echo json_encode($response); 
+0

Нет хорошо, это все та же. Только «print_r ($ response)» дает мне ответ. –

+0

Это сработало, но теперь я получаю нулевые значения везде! '{" partNo ": null," partName ": null," shortDesc ": null," longDesc ": null}]," code ": 1} Array ( [part] = > Массив ( [0] => Массив ( [PARTNO] => [partName] => [shortDesc] => [longDesc] => ) ) [код] => 1 ) ')' Я также провел некоторое тестирование, предоставив несуществующую частьNo (для двойной проверки), а неудачный блок else выполняется, как предполагалось, с надлежащим json ответ. –

+0

Возможно, они просто нулевые значения? – Arlind

Смежные вопросы