데이터의 모든 부분을 실제로 원한다면 아무리 많은 행을 검색해도됩니다. 하나의 쿼리로 모든 것을 얻는 것이 가장 좋습니다. 이 같은 결과를 주문하여
SELECT schedule.id, overrides.id, locations.id, locations.name
FROM schedule
JOIN overrides ON overrides.schedule_id = schedule.id
JOIN locations ON locations.override_id = overrides.id
ORDER BY schedule.id, overrides.id, locations.id
, 당신은 결과 세트를 반복하고 다음 스케줄로 이동할 수 있습니다 때마다 scheduleid 변경하고 다음 위치 본 locationid 변경됩니다.
편집 : 3 차원 배열로 데이터를 설정하는 방법의 가능한 예 -
$last_schedule = 0;
$last_override = 0;
$schedules = array();
while ($row = mysql_fetch_array($query_result))
{
$schedule_id = $row[0];
$override_id = $row[1];
$location_id = $row[2];
$location_name = $row[3];
if ($schedule_id != $last_schedule)
{
$schedules[$schedule_id] = array();
}
if ($override_id != $last_override)
{
$schedules[$schedule_id][$override_id] = array();
}
$schedules[$schedule_id][$override_id][$location_id] = $location_name;
$last_schedule = $schedule_id;
$last_override = $override_id;
}
아주 원시적 인, 당신의 코드가 서로 다른 모양 상상, 그러나 희망은 몇 가지 의미가 있습니다.
+1 기본 db 개념입니다. –
예 좋은 점, 같은 수의 행이 어느 쪽이든 반환됩니다. 디스플레이에 관해서는 각 일정을 페이지의 섹션으로 표시해야하며 각 일정 내에 위치가있는 각 재정의를 나열해야합니다. 배열을 잘 돌아가고 있어야합니다. 일정 ID가 변경되면 다음 일정으로 이동하는 것에 대한 귀하의 의견에 관심이 있습니다. 조언 해 줄 수 있니? 미리 감사드립니다. 단일 DB 쿼리를 진행하겠습니다. 감사합니다. – Ben
나는 유용한 방향으로 당신을 가리킬 수있는 코드 샘플을 추가했다. – TehShrike