Codeigniter:从多个表中检索数据并显示结果

问题描述:

我正在开发我的第一个使用codeigniter的大型应用程序,需要一点帮助,因为我对这一切都很陌生。我知道如何从DB中获取记录并显示它们,但是现在我必须从两个表中获取结果并显示它们。我将$ data传递给视图,它对$ data ['prop']工作正常,但我无法得到其余部分。Codeigniter:从多个表中检索数据并显示结果

$data['prop'] = $this->ManageProperty_model->get_property_details($p_id);
$data['img'] = $this->ManageProperty_model->get_property_images($p_id);
$this->load->model('ManageBranch_model');
$data['branch'] = $this->ManageBranch_model->get_branch_details($p_id);

我通常回声出结果像这样:
<?php foreach ($prop as $p) : ?>
<?php echo $p->ID; ?>
<?php endforeach; ?>
即使有,因为我不知道其他way.do的我需要的IMG和分支的foreach返回仅1行?

是的,目前你只是得到一个或另一个。你最好把它放到像$data['property']['prop']这样的多级阵列中。

+0

你会如何显示这个?并且我总是必须有一个foreach循环。在这种情况下,我知道只会返回一个结果。看起来愚蠢的在那里有一个循环 – 2010-06-08 12:20:11

+0

首先,你*永远*“知道”只有一个结果将被返回,除非你在其上放置了一个'LIMIT 0,1'。其次,为什么你使用foreach循环呢?你的'ManageProperty_model'不应该注意这一点,只需返回对象,以便说'$ prop-> id,$ img-> image_link等'? – 2010-06-08 13:55:12

如何使用连接?

我不知道什么在你的模型,但如果你尝试类似

 $this->db->from('property'); 
     $this->db->join('branch', 'branch.id = property.id'); 

你可以把一个WHERE语句中有太多,如果你需要的东西尤其如此。

这意味着你有一个更复杂的模型,但更少的循环,数组和杂乱的东西在视图中,这是你想要的。