$skills = explode(',', 'good listener,topper,leader');
$teacherID = 7;

function search_follower($teacherID, $skills, $limit, $start) {
    $this->db->limit($limit, $start);
    $this->db->select('student_skills.user_id');
    $this->db->from('student_skills');
    $this->db->join('followers', 'followers.student_id = student_skills.user_id', 'FULL JOIN');

    foreach ($skills as $skill) {
        $this->db->like('student_skills.name', $skill);
        $this->db->or_like('student_skills.name', $skill);
    }
    $this->db->where('followers.teacher_id', $teacherID);
    $query = $this->db->get();
    if ($query->num_rows() > 0) {
        foreach ($query->result() as $row) {
            $data[] = $row;
        }
        return $data;
    }
    return false;
}


学生技能表:

id name user_id

1 topper 5

2 leader 5

3 good listener 6

4 toper 6

追随者表:

id teacher_id student_id

1 7 5

1 7 6

1 7 8

我已经编写了上面的模型函数,以获取跟随特定老师($teacherID)并从student_skills表中具有指定技能($skills)的学生的学生ID。

当我以多种技能(例如,良好的倾听者,打per者等)或单项技能(例如:打per者)运行上述功能时,它没有显示任何错误..但是它给了我所有具有指定技能的学生,我想只让跟随特定老师的学生..并且具有指定的技能..

但是当我评论or_like语句时,它给了我所需的结果,但是多种技能不起作用。

我从2天的时间来解决这个问题..但是还没有找到任何解决方案....

任何建议或帮助将是一个很大的帮助..在此先感谢。

最佳答案

尝试修改select句子。

$this->db->select('student_skills.*, followers.*');

10-01 11:16