我有两张桌子:
users: id, name, email
user_experience: id_exp, user_id, exp_date
有多个用户,每个用户都有多种体验。
E.g。
用户:
1, david, david@david.com
与三种体验相关联
user_experience:
1, 1, 1/1/2012
2, 1, 2,2,2012
3, 1, 3,3,2012
如何检索数据,以便我可以在这样的视图中显示它:
Name / email / Date of experience
david, david@david.com 1/1/2012
2/2/2012
3/3/2012
joe, joe@joe.com 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组合显示一个新行。我希望用户只显示一次。谢谢!
答案 0 :(得分: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
}
}