【问题标题】:Codeigniter: Retrieving data from multiple tables and displaying resultsCodeigniter:从多个表中检索数据并显示结果
【发布时间】:2011-03-01 03:21:04
【问题描述】:

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

$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; ?>
即使只有 1 行被返回,因为我不确定另一种方式。我是否需要一个 foreach 用于 img 和分支?

【问题讨论】:

    标签: codeigniter


    【解决方案1】:

    使用连接怎么样?

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

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

    如果你需要一些特别的东西,你也可以在那里放一个 where 语句。

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

    【讨论】:

      【解决方案2】:

      是的,目前您只是获得其中之一。您可能最好将其放入像 $data['property']['prop'] 这样的多级数组中。

      【讨论】:

      • 你会如何显示这个?并且我总是必须有一个 foreach 循环。在这种情况下,我知道只会返回一个结果。那里有一个循环似乎很愚蠢
      • 首先,你永远“知道”只有一个结果会被返回,除非你在上面加上LIMIT 0,1。其次,你为什么要使用 foreach 循环呢?难道你的ManageProperty_model 不应该处理这个并简单地返回对象以便你可以说$prop-&gt;id, $img-&gt;image_link, etc
      猜你喜欢
      • 1970-01-01
      • 2014-04-23
      • 2013-02-23
      • 1970-01-01
      • 1970-01-01
      • 2012-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多