Codeigniter - 对三个表中的数据进行排序
Codeigniter - Sort data from three tables
我有如下三个表格。主键突出显示,外键以斜体显示
项目任务
[ projecttasksid, projectstructureid, assignto, taskname ]
项目结构
[projectstructureid, projectid, structurename]
个项目
[projectid, projectname]
我可以通过比较 'assignto' 和会话数组中的用户 ID 来获取项目任务。
这样我就可以将任务分配给登录用户。
以 Codeigniter 方式从 'assignto' 字段中仅针对已登录用户/获取 'projectstructure' 和 'projects' 的最佳方法是什么。
我想写,
get_structures() 和
get_projects()
代码,
$user_id = $this->session->userdata('userID');
$data = array('main_content' => 'view_project_tasks_page',
'tasks' => $this->projects->get_project_tasks($user_id),
'structures' => $this->projects->get_structures(),
'projects' => $this->projects->get_projects() );
$this->load->view('template', $data);
型号 - get_project_tasks($user_id)
function get_project_tasks($user_id)
{
$rules = array('assignto' => $user_id );
$this->db->select()->from('projecttasks')->where($rules);
$sql_stmt = $this->db->get();
return $sql_stmt->result();
}
您搜索的是简单的右连接
在 "CodeIgniter way" 中应该看起来像这样(未测试)
function get_structures($user_id) {
$rules = array('projecttasks.assignto' => $user_id );
$this->db->select('projectstructure.*')
->from('projectstructure')
->join('projecttasks', 'projecttasks.projectstructureid = projectstructure.projectstructureid')
->where($rules);
$sql_stmt = $this->db->get();
return $sql_stmt->result();
}
function get_projects($user_id) {
$rules = array('projecttasks.assignto' => $user_id );
$this->db->select('project.*')
->from('projectstructure')
->join('projecttasks', 'projecttasks.projectstructureid = projectstructure.projectstructureid')
->join('project', 'projecttasks.projectid = project.projectid')
->where($rules);
$sql_stmt = $this->db->get();
return $sql_stmt->result();
}
我有如下三个表格。主键突出显示,外键以斜体显示
项目任务 [ projecttasksid, projectstructureid, assignto, taskname ]
项目结构 [projectstructureid, projectid, structurename]
个项目 [projectid, projectname]
我可以通过比较 'assignto' 和会话数组中的用户 ID 来获取项目任务。 这样我就可以将任务分配给登录用户。
以 Codeigniter 方式从 'assignto' 字段中仅针对已登录用户/获取 'projectstructure' 和 'projects' 的最佳方法是什么。
我想写, get_structures() 和 get_projects()
代码,
$user_id = $this->session->userdata('userID');
$data = array('main_content' => 'view_project_tasks_page',
'tasks' => $this->projects->get_project_tasks($user_id),
'structures' => $this->projects->get_structures(),
'projects' => $this->projects->get_projects() );
$this->load->view('template', $data);
型号 - get_project_tasks($user_id)
function get_project_tasks($user_id)
{
$rules = array('assignto' => $user_id );
$this->db->select()->from('projecttasks')->where($rules);
$sql_stmt = $this->db->get();
return $sql_stmt->result();
}
您搜索的是简单的右连接
在 "CodeIgniter way" 中应该看起来像这样(未测试)
function get_structures($user_id) {
$rules = array('projecttasks.assignto' => $user_id );
$this->db->select('projectstructure.*')
->from('projectstructure')
->join('projecttasks', 'projecttasks.projectstructureid = projectstructure.projectstructureid')
->where($rules);
$sql_stmt = $this->db->get();
return $sql_stmt->result();
}
function get_projects($user_id) {
$rules = array('projecttasks.assignto' => $user_id );
$this->db->select('project.*')
->from('projectstructure')
->join('projecttasks', 'projecttasks.projectstructureid = projectstructure.projectstructureid')
->join('project', 'projecttasks.projectid = project.projectid')
->where($rules);
$sql_stmt = $this->db->get();
return $sql_stmt->result();
}