2016-01-26 3 views
0

Я хочу выбрать все рецепты в моей базе данных продуктов и закодировать их в простой ответ JSON. Я рассмотрел решения, связанные с переполнением стека, и реализовал разумный сценарий.PHP для JSON кодирования данных не работает

Не возвращается массив JSON/эхо.

Может ли кто-нибудь сказать мне, где я ошибаюсь?

<?php 
$type = "recipe"; 
$conn = mysqli_connect("localhost", "root", "", "food"); // SAMPLE CREDENTIALS 
$sql = "SELECT * FROM wp_posts WHERE post_type = '$type' "; 
$query = mysqli_query($conn, $sql); 

$i = 0; // INCREMENT 
$arr = []; 

if($query) { 
    while($row = mysqli_fetch_assoc($query)) { 
     $jsonArrayObject = (array('title' => $row['post_title'] , 'excerpt' => $row['post_content'])); 
     $arr[$i] = $jsonArrayObject; 
     $i++; 
    } 
    $json_array = json_encode($arr, JSON_PRETTY_PRINT); 
    echo $json_array; 
} 
else { 
    echo "Error in database"; 
} 
?> 

ARR ПЕРЕМЕННОЙ РАСПЕЧАТАТЬ enter image description here

+0

Каков результат '$ arr'? –

+0

Я не вижу ошибки, но php не является языком, который я хорошо знаю. Однако стандартная отладка должна решить это довольно быстро ... добавьте эхо внутри цикла для каждого jsonArrayObject. Результаты должны указывать вам прямо на проблему (или, по крайней мере, дать вам больше информации для вопроса здесь) – PeteB

+0

@PathikVejani Он отлично печатает объект массива. – WebDevDanno

ответ

1

Проверьте, если ваш PHP версии 5.4.0 или выше.

Опция JSON_PRETTY_PRINT была введена в этой версии в соответствии с http://php.net/manual/en/json.constants.php

Если ваш PHP версии ниже 5.4.0 оставьте параметр.