2012-12-10 66 views
0

檢索數據我有兩個表:笨如何從兩個表

users: id, name, email 

user_experience: id_exp, user_id, exp_date 

有多個用戶,並且每個用戶有多個體驗。

E.g.

用戶:

1, david, [email protected] 

連接到三個經驗

user_experience: 

1, 1, 1/1/2012 
2, 1, 2,2,2012 
3, 1, 3,3,2012 

我怎樣才能檢索數據,所以我可以像這樣在視圖中顯示它:

Name /email   /Date of experience 

david, [email protected] 1/1/2012 

          2/2/2012 

          3/3/2012 

joe, [email protected]  1/1/2012 

          2/2/2012 

          3/3/2012 

我目前代碼:

控制器

$data['nurses'] = $this->users_model->get_nurse(); 

模型

public function get_nurse() { 
    $this->db->select('name,email,date'); 
    $this->db->from('users'); 
    $this->db->join('user_experience', 'users.id = user_experience.user_id'); 
    $query = $this->db->get(); 

    return $query->result_array(); 
} 

查看

<?php foreach ($rows as $row): ?> 
echo $row['first_name']; 
echo $row['email']; 
echo $row['exp_date']; 

然而,這顯示爲每個用戶和EXP組合一個新行。我希望用戶只顯示一次。謝謝!

回答

1

你的護士功能不應該包括經驗,因爲他們是單獨的實體。 讓護士返回護士信息,然後爲每位護士get_experiences()並顯示這些信息。所以你的控制器看起來像這樣。

$data['nurses'] = $this->users_model->get_nurse(); 
foreach($data['nurses'] as $nurseObj) { 
    $expM = new ExperienceModel($nurseObj->id); 
    // Display/pass/generate nurse info 
    $nurse_experiences = $expM->getExperiences(); 
    foreach($nurse_experiences as $ne) { 
     // experience info 
    } 
}