我是php和codeigniter的新手。基本上我希望項目表中的所有項目都與該項目的用戶一起顯示。**單個項目中可能有多個用戶,或者用戶尚未分配給該項目。**所以我嘗試過實施它,但是我沒有得到所需的輸出。請幫幫我 !!下面是代碼:codeigniter顯示所有項目及其上的用戶(無論是否有用戶)
型號:
public function get_projects()
{
$sql = "SELECT * FROM `project`";
$query = $this->db->query($sql);
return $query->result();
}
public function list_projects()
{
$project_result = $this->get_projects();
$sql = "select user_fname , project_id , user_id from user";
$query = $this->db->query($sql);
$user_result = $query->result();
$result_arr = array();
$proj_id_arr = array();
foreach($project_result as $curr_proj):
if(in_array($curr_proj->project_id, $proj_id_arr)){
$result_arr[$curr_proj->project_name][] = array(
'project_id ' => $curr_proj->project_id,
'project_name' => $curr_proj->project_name
);
}else{
$result_arr[$curr_proj->project_name][] = array(
'project_id ' => $curr_proj->project_id,
'project_name' => $curr_proj->project_name
);
}
foreach($user_result as $curr_user):
if($curr_user->project_id == $curr_proj->project_id):
$result_arr[$curr_proj->project_name][] = array(
'project_id ' => $curr_proj->project_id,
'project_name' => $curr_proj->project_name,
'user' => $curr_user->user_fname,
'user_id' => $curr_user->user_id
);
$proj_id_arr[] = $curr_proj->project_id;
endif;
endforeach;
endforeach;
echo '<pre>';
print_r($result_arr);exit;
return $data;
}
控制器:
function index() {
$this->check_session();
$data['main_content'] = 'admin/project/list';
$data['lists']=$this->project_model->list_projects();
$data['projects']=$this->project_model->get_projects();
$data['result'] = false;
$this->load->view('common/admin_template', $data);
}
這是我的代碼的結果:
Array
(
[project 1 ] => Array
(
[0] => Array
(
[project_id ] => 1
[project_name] => project 1
)
[1] => Array
(
[project_id ] => 1
[project_name] => project 1
[user] => user1
[user_id] => 1
)
[2] => Array
(
[project_id ] => 1
[project_name] => project 1
[user] => user2
[user_id] => 2
)
)
[project 2] => Array
(
[0] => Array
(
[project_id ] => 19
[project_name] => project 2
)
[1] => Array
(
[project_id ] => 19
[project_name] => project 2
[user] => user3
[user_id] => 3
)
)
[project 3] => Array
(
[0] => Array
(
[project_id ] => 20
[project_name] => project 3
)
)
[project 4] => Array
(
[0] => Array
(
[project_id ] => 21
[project_name] => project 4
)
)
)
有兩個表:一個是項目其中包含project_id,project_description和其他是user_id,user_fname,project_id(外鍵)的用戶
我們可以看看你的實體關係圖,或所涉及的表的簡要說明,編輯成你的問題?我認爲一個項目可以有幾個用戶,但一個用戶只能有一個項目? – halfer 2014-12-07 18:06:31
使用左連接或右連接 – Vinie 2014-12-08 04:22:19