2015-12-11 3 views
-2

У меня есть три таблицы, как показано ниже. Первичные ключи будут выделены и внешние ключи наклоннымCodeigniter - сортировка данных из трех таблиц

  1. projecttasks [projecttasksid, projectstructureid, AssignTo, TaskName]

  2. projectstructure [projectstructureid, ProjectID, structurename ]

  3. проекты [ProjectID, Projectname]

я могу получить projecttasks сравнивающего 'AssignTo' и идентификатор_пользователь образует массив сеанса. Так что я получаю задания, назначенные зарегистрированному пользователю.

Каков наилучший способ получить «проектную структуру» и «проекты» только для входа в поле пользователя/из поля «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 iter 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(); 
} 
+0

Да, это просто, но нужно знать, как известно, в Codeigniter и спасибо за это. – user3868890

Смежные вопросы