У меня есть таблица: Курсы и таблица: Сессии. Курс может иметь несколько сеансов (например, 5 сеансов). Что я должен сделать (возможно, в PHP), чтобы преобразовать эти 5 записей курса и сеансов в одну запись/массив? Я пробовал array_merge() и array_merge рекурсивно(), но безуспешно.пять строк/записей/массивов, возвращаемых innerJoin/leftJoin, как одна строка/запись/массив - php
Если вам нужны точные данные/строки/записи/массивы, которые я получаю, я разместил их.
Спасибо.
EDIT:
public function getCourses($dateFrom, $dateTo)
{
$select = $this->_dbTableCourseTimetables->select()->setIntegrityCheck(false);
$select->from(array('a' => 'course_timetables'), 'a.id_course_timetables');
$select->where('b.start_time >= ?', $dateFrom);
$select->where('b.end_time <= ?', $dateTo);
$select->where('b.isActive >= ?', 'yes');
$select->joinInner(array('b' => 'course_sessions'), 'a.id_course_timetables = b.id_course_timetables', 'b.id_course_sessions');
echo $select;
return $this->_dbTableCourseTimetables->fetchAll($select)->toArray();
}
Это мой Зенд запрос, который производит этот SQL:
SELECT a.id_course_timetables, b.id_course_sessions FROM course_timetables AS a INNER JOIN course_sessions AS b ON a.id_course_timetables = b.id_course_timetables WHERE (b.start_time >= '1332745200') AND (b.end_time <= '1333350000') AND (b.isActive >= 'yes')
Что, если я исполню ее. Он возвращает:
id_course | id_course_sessions
--------- -----------------
303 533
303 534
303 532
304 535
И когда я прохожу через foreach(), он оказывает мне четыре предмета. Я на самом деле хочу быть двумя предметами, потому что курсы - всего два. Надеюсь, это имеет смысл. Благодарю.
P.S. какой невероятный редактор ....
Может ли я увидеть ваш пример код? –
@ DanielDimitrov - пожалуйста, переместите свой код в комментариях к актуальному вопросу, где они могут быть правильно отформатированы (четыре пробела перед каждой строкой). Затем удалите комментарии - сохраните их для читателей ':)'. – halfer