1
所以我试图循环所有通过id连接的表的值。有4个表参与,我试图根据第一个表的ID从每个表中获取所有值。这是我迄今为止的代码。 (PS我使用CodeIgniter的数据库的方法)将多个表值放入数组
$course = $this->db->query("SELECT * FROM courses");
// Put Courses into array
foreach ($course->result() as $row)
{
$courses['id'] = $row->id;
$courses['course_name'] = $row->course_name;
// Put Topics into array
$topic = $this->db->query("SELECT * FROM course_topics WHERE course_id = 5");
foreach ($topic->result() as $row)
{
$topics[] = array(
'id' => $row->id,
'course_id' => $row->course_id,
'topic_name' => $row->topic_name,
'order' => $row->order
);
// Put badges into array
$badge = $this->db->query("SELECT * FROM course_topic_badges WHERE topic_id = ".$row->id);
foreach ($badge->result() as $row)
{
$badges[] = array(
'id' => $row->id,
'topic_id' => $row->topic_id,
'badge_name' => $row->badge_name
);
// Put dotpoints into array
$dotpoint = $this->db->query("SELECT * FROM course_topic_dotpoints WHERE badge_id = ".$row->id);
foreach ($dotpoint->result() as $row)
{
$dotpoints[] = array(
'id' => $row->id,
'badge_id' => $row->badge_id,
'dotpoint' => $row->dotpoint,
'viddler_video_id' => $row->viddler_video_id,
'viddler_openurl' => $row->viddler_openurl,
'order' => $row->order
);
}
}
}
}
我一直在摆弄周围了一段时间,所以有可能是未在最佳时尚:)
这样做基本的某些行我以后需要遍历数组,但我只是不确定实际填充它的最佳方法。
感谢您的帮助!
令人惊叹!这非常有帮助,并且表明我有更好的做事方式。什么是迭代这个数组的最好方法? – Sneaksta 2012-03-10 10:39:52
很高兴你喜欢它。您可以使用嵌套循环以类似于构建结果的方式迭代结果数据。 – ghbarratt 2012-03-10 15:06:43
我最近对我的回答感到担心的是,您可能只想在自己的演示文稿中呈现不同的数据实体(表格)(例如列出与主题分开的徽章)。如果是这样的话,那么它实际上会更有意义为每个数组构建单独的数组,但是当我看到您在每个数据库中都包含父ID时,我认为您有兴趣保留这些关系,所以我决定构建数组来处理它。我正在做一个小小的编辑来记录这一点。 – ghbarratt 2012-03-10 15:23:35