我试图在新的提供者看到之前显示其他人已经完成的特定工作的记录。如果状态是打开的,则不应该显示任何信息,因为没有人对此进行任何报告。如果状态被授予,则应显示必要的数据。现在,要显示的信息是可见的。问题是数据显示在每个职位上,即使它不是这样一个职位的报告。示例,
Job ID | Title | Description | Subject | Job Status
2 | Math Tutor | I need Math tutor! I need Math tuto... | Mathematics | Open
1 | English Tutor | Edited... | French | Awarded
如果我点击"打开",我应该看不到任何记录,因为它仍然没有完成。如果我点击"获奖",我会看到有关该工作的详细信息。目前,数据显示已经授予的作业ID 1是正确的。然而,在作业ID 2中也显示了相同的数据。如何在正确的位置正确显示数据?我一直在尝试一切。我包括了要显示的作业ID,看看它是否有问题。但没有,它在作业1和2中都显示了作业ID 1。如何仅在作业1中显示它所属的位置?
这是我在控制器中的代码:
public function view_tutors_tutorials()
{
$this->validateRole('provider');
$this->load->model('tutorial_model');
$this->load->model('auth_model');
$data['subject_list'] = $this->array_to_select( $this->tutorial_model->get_all_subjects(), 'id','name');
$my_preference = $this->tutorial_model->get_tutors_tutorials(isset($_GET['subject_id'])?$_GET['subject_id']:'0', isset($_GET['sort_by'])?$_GET['sort_by']:'');
$data['my_preference'] = $my_preference;
$this->load->view('provider/view_tutors_tutorials', $data);
}
在我的模型中:
public function get_tutors_tutorials($subject_id = NULL, $sort_by = NULL)
{
//responsible for displaying job contracts for provider user.
$this->db->select('tutorial.status as status, tutorial.client_id as client_id, tutorial.id as tutorial_id, subject.name as name, tutorial.title as title, tutorial.description as description, tutorial.start_date as start_date, tutorial.update_date_time as update_date_time,tutorial_proposal.provider_id as provider_id,provider.first_name as first_name,provider.last_name as last_name,tutorial.contract_status as contract_status,tutorial.provider_feedback as provider_feedback,tutorial.client_notetoself as client_notetoself,tutorial.client_feedback as client_feedback,tutorial.provider_notetoself as provider_notetoself,tutorial.material_used,tutorial.recommendation')->from('tutorial');
$this->db->join('subject', 'subject.id = tutorial.subject_id');
$this->db->join('tutorial_proposal', 'tutorial_proposal.provider_id = tutorial.provider_id');
$this->db->join('provider', 'provider.id = tutorial_proposal.provider_id');
$this->db->where('tutorial.status', 'Awarded');
if ( ! empty($subject_id) )
{
$this->db->where('subject_id', $subject_id);
}
//if there's no sort selection made, the jobs will be sorted from newest to oldest
if ( empty($sort_by))
{
$sort_by = "update_date_time desc";
}
$this->db->order_by($sort_by);
$query = $this->db->get();
return $query->result_array();
}
我期待得到任何帮助。
您需要删除模型查询中状态的where条件:$this->db->where('utorial.status','Awarded');//这个应该删除还要确保subject_id正确通过。