2014-12-03 3 views
2

Как создать этот тип JSON ?:Создание результата JSON из MySQL

{ 
     "Southern", "1040", 
     "South-West": "710", 
     "South-East": "692", 
     "Western": "638", 
     "North-Western", "448", 
     "Eastern": "80", 
     "North-East": "9" 
} 

Я попробовал этот путь, но вы не получите, что вам нужно:

$result = mysqli_query($db,"query"); 

     $json_response = array(); 

     while ($row = mysqli_fetch_array($result, MYSQL_NUM)) { 
      array_push($json_response,array($row[0],$row[1])); 
     } 
+0

Какой разница между выходными и желаемым результатом? – Celeo

+0

Вы говорите, что формат не прав? Какой результат вы получаете? – philtune

+0

Вы смешиваете MySQL API с 'mysqli_query' и' MYSQL_NUM' –

ответ

1

Предполагаю, что каждая строка содержит 2 столбца с данными, например?

column1  column2 
"southern"  "1040" 

Если это так, просто настроить, как вы строите массив:

$result = mysqli_query($db,"query"); 

    while ($row = mysqli_fetch_array($result, MYSQL_NUM)) { 
     $data[$row[0]] = $row[1]; 
    } 
    $json_response = json_encode($data); 
2

Просто получить массив из ваш запрос и кодировать его:

$result = mysqli_query($db,"query"); 
$json_response = mysqli_fetch_all($result, MYSQLI_ASSOC); 
echo json_encode($json_response); 
// OR 
echo json_encode($json_response,JSON_FORCE_OBJECT); 

Для справки:

mysqli.query Он возвращает объект, mysqli-result object, а затем использовать mysqli_fetch_all(), который возвращает массив, который кодируется json_encode функции.

+0

Таким образом, я знаю. Я хотел бы получить JSON в форме ... '{ « Южный »:« 1040 », « Юго-Запад »:« 710 », « Юго-Восток »:« 692 », « Западный »:« 638 », « Северо-Запад »,« 448 », « Восточный »:« 80 », « Северо-Восток »:« 9 » }' – Sebastiano

+0

Как я понимаю, например, «Южный» , является полем в вашей таблице базы данных, а значение «1040» является его значением. Итак, способ, который я считаю, должен дать результат, который вы хотите. – SaidbakR

+0

Результат вашего кода выглядит следующим образом: '[[« Южный »,« 1040 »], [« Юго-Запад »,« 710 »], [« Юго-Восток »,« 695 »], [« Западный «Северо-Запад», «448»], [«Восточный», «80»], [«Северо-Восток», «9»]]. – Sebastiano

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