2015-12-11 38 views
-2

我有三个表如下。主键以斜体Codeigniter - 从三个表中排序数据

  1. projecttasks 高亮和外键[projecttasksidprojectstructureidassignto,TASKNAME]

  2. projectstructure [projectstructureid专案编号,structurename ]

  3. 项目 [专案编号,项目名称]

我可以得到比较 'assignto' 和用户ID projecttasks形成会话阵列。 这样我就可以获得分配给登录用户的任务。

什么是最好的方式来获取'项目结构'和'项目'只为登录用户/从'assignto'字段在Codeigniter方式。

我想写点什么, 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(); 
} 
+1

你能告诉我们你试过什么吗? –

+0

发布您的查询完成 –

+0

我已经添加了上面的代码,请检查它 – user3868890

回答

0

你搜索什么是简单右键加入

在“CodeIgn它应该看起来像这样(未测试)

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(); 
} 
+0

是的它很简单,但希望知道在Codeigniter的方式,并感谢这一点。 – user3868890