@apodolsky

Как объединить две таблицы MYSQL так чтобы они не смешивались в кучу?

Есть две таблицы: requests и requests_params.
В таблице requests хранятся данные а в таблице requests_params дополнительные параметры.
Пример:
requests - id, name, userid
requests_params - id, fio, rid
Что я делал?
С помощью leftJoin объединял таблицы и извлекал данные по requests.ID=requests_params.RID.
Всё работает, я конвертирую ответ сразу в Json, однако всё сыпется в одну кучу. А мне нужно чтобы было так:
[{'id' : 10, 'name' : 'Заявка 1', 'requests_params' : [ 
  'id' : 10, 'fio' : 'Иванов И.И.', 'rid' : 10,
  'id' : 11, 'fio' : 'Петров И.И.', 'rid' : 10
} }, {'id' : 11, 'name' : 'Заявка 2', 'requests_params' : [ 
  'id' : 12, 'fio' : 'Иванов И.И.', 'rid' : 10,
  'id' : 13, 'fio' : 'Петров И.И.', 'rid' : 10
}]
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
Adamos
@Adamos
$res = [];
foreach($sqlResult as $row) {
  if(!array_key_exists($row['id'], $res) {
    $res[$row['id']] = [
      'id' => $row['id'],
      'name' => $row['name'],
      'requests_params' => []
    ];
  }
  $res[$row['id']]['requests_params'][] = [
    'fio' => $row['fio'],
    'rid' => $row['rid']
  ];
}
echo json_encode(array_values($res));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы