2013-06-29 2 views
1

Раньше я использовал для кодирования набора результатов (одномерный) в json. Теперь мне нужно создать многомерную структуру данных json на основе нескольких таблиц. Я никогда этого не делал, и мне нужна помощь.Создание многомерного json на основе запроса mysql

Моих столов:

  • пользователи (1 ко многим)
  • телефонов (много 1)
  • адрес (много 1)
  • имен (много 1)

Мне нужно разработать ответ JSON, который имеет эту структуру для каждого ряда:

  • user_id: user_id
  • телефон: PHONE1, PHONE2, phone3 и т.д.
  • адреса: ADDRESS1, ADDRESS2, address3 и т.д.
  • имена: name1, name2, name3 и т.д.

Как мне это сделать?

Например, я думаю, что я могу создать 3 запроса для каждой таблицы (телефоны, адреса, имена) и вернуть набор данных для каждой таблицы, а затем закодировать каждый набор результатов в json. Теперь мои вопросы: будет ли это правильным способом? Как добавить каждого дочернего json в родительский json?

$userJson = json_encode($user_id_resultSet); 
$phonesJson = json_encode($phones_resultSet); 
$addressesJson = json_encode($addresses_resultSet); 
$namesJson = json_encode($names_resultSet); 
//how do I combine them into one row? 
+1

Объединить их, прежде чем кодировать данные в JSON – Musa

+0

вы говорите об объединении наборов результатов (выполнение 'array_merge') или создать какой-то запрос, который возвращает набор один результат? – Andrew

ответ

2
$combined = array(
    "user" => $user_id_resultSet, 
    "phones" => $phones_resultSet, 
    "addresses" => $addresses_resultSet, 
    "names" => $names_resultSet 
); 

echo json_encode($combined, JSON_PRETTY_PRINT); // just for neat output. 
+0

это потрясающе. А как насчет того, чтобы в петле? Когда у меня есть несколько пользователей (так должно быть несколько строк?) – Andrew

+0

@ Андрей - это просто базовые манипуляции с массивами, дайте ему идти! Попробуйте пустой массив '$ users = array();' и затем добавьте к нему новые вещи с помощью '$ users [] = array (...);'. Затем вы можете добавить '$ users' в объединенный массив, отправленный кодеру JSON. – halfer

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