2011-12-14 75 views
1

林獲得名正從我的數據庫列表如下(在我的控制器):笨從其他表中概述

$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

回答

1

如果你改變你的模型功能,這一點:

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

0

既然你在一個視圖中,您應該只做展示的東西,沒有進一步的數據庫調用。

你可以在控制器中做一個額外的foreach循環。

不過,最好的選擇恕我直言是修補方法getInteractionsId()來加入與用戶表,這樣你就同時擁有$互動[「gebruikers_id」]和$互動[「users_naam」]。

無論結果如何,想起fat models and skinny controllers