如果你真的想要每一塊數據,無論你怎麼做,你都會檢索相同數量的行。最好在一個查詢中得到它。
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變化。
編輯:如何把這些數據轉化爲三維陣列中的可能的例子 -
$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;
}
相當原始的,我想你的代碼看起來不同,但希望它有一定的道理。
對於基本的db概念+1。 – 2011-01-27 19:23:46