私はテーブルを持っています:コースとテーブル:セッション。 Аコースは複数のセッションを持つ場合があります(例えば5セッション)。私が(おそらくPHPで)これらの5つのレコードをコースやセッションを1つのレコード/配列に変換するにはどうすればいいですか?私はarray_merge()とarray_mergeを再帰的に()試みたが成功しなかった。innerJoin/leftJoinによって1行/レコード/配列として返される5行/レコード/配列 - 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を生成し、私のZendのクエリ、次のとおりです。私はそれを実行した場合
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()をループするとき私は4つのアイテムをレンダリングしています。私は実際に2つの項目になりたいです。なぜなら、コースは2つしかないからです。希望は意味をなさない。ありがとう。
P.S.どのような素晴らしいエディタ....
を助け、私はあなたのサンプルコードを見てもいいですか? –
@DanielDimitrov - コメントであなたのコードを実際の質問に移動してください。ここで、正しい形式(各行の前に4つのスペース)を入れることができます。次に、コメントを削除します - あなたの読者のために読むことができるように ':)'。 – halfer