笨从其他表中概述

问题描述:

林获得名正从我的数据库列表如下(在我的控制器):笨从其他表中概述

$view["interactions"] = $this->interacties->getInteractionsId($id); 

这让在我的表中的“互动”数据库一切的数组。

林张贴这对我用下面的foreach循环的观点:

<?php if($interactions): ?> 
    <?php foreach($interactions as $interaction): ?> 
     <tr class="gradeX"> 
     <td><a href="<?=site_url('interactie/single/'.$interaction['id'])?>"><?=$interaction['datum']?></a></td> 
     <td><?=$interaction['gebruikers_id']?></td> 
     <td><?=$interaction['gesproken_met']?></td> 
     <td><?=$interaction['interactie']?></td> 
     </tr> 
    <?php endforeach; ?> 
<?php else: ?> 
    <p>Geen interacties</p> 
<?php endif; ?> 

这工作得很好,但现在我想改变$interaction['gebruikers_id']到这是在我的“用户”表被称为'一个名称NAAM”。通常我会得到该id并使用另一个get函数。但是,因为这是在foreach循环,我不知道如何做到这一点。

这是在型号的功能:

public function getInteractionsId($id) { 
    $this->db->select('*'); 
    $this->db->where('bedrijf_id', $id); 
    $query = $this->db->get('interacties'); 

    return $query->num_rows() > 0 ? $query-> result_array() : FALSE; 

} 
+0

您可以在查询中使用连接,以便`getInteractions`的结果也包含用户名。如果你想要如何做到这一点的建议,请显示该功能的代码。 – Mischa 2011-12-14 14:48:51

+0

我添加了这个函数,即时通讯不太熟悉CI中的连接函数,所以也许你可以帮忙。 – Augus 2011-12-15 07:57:00

如果你改变你的模型功能,这一点:

public function getInteractionsId($id) { 
    $this->db->select('interacties.*, gebruikers.naam'); 
    $this->db->join('gebruikers', 'interacties.gebruikers_id = gebruikers.id'); 
    $this->db->where('bedrijf_id', $id); 
    $query = $this->db->get('interacties'); 
    return $query->num_rows() > 0 ? $query-> result_array() : FALSE; 
} 

您可以在您的视图做到这一点:

<?=$interaction['naam']?> 

如果您不熟悉数据库的基本连接,检查出this article

既然你在一个视图中,您应该只做展示的东西,没有进一步的数据库调用。

你可以在控制器中做一个额外的foreach循环。

不过,最好的选择恕我直言是修补方法getInteractionsId()来加入与用户表,这样你就同时拥有$互动[“gebruikers_id”]和$互动[“users_naam”]。

无论结果如何,想起fat models and skinny controllers