$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;
}
student_skills表:
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
)的学生的学生ID,并且从student_skills表中指定了技能($skills
)..
当我运行具有多种技能的上述功能(例如:良好的倾听者,礼帽等)或单一技能(例如:topper)时,它运行时没有显示任何错误..但它给了我所有具有指定技能的学生我想只有跟随特定老师的学生......并且具备指定的技能..
但是当我对or_like
语句发表评论时,它会向我提供所需的结果,但多项技能无法正常工作.. ex: topper
正在工作且ex:topper,topper
正在工作但ex: topper,leader
无法正常工作
我在2天内努力解决这个问题......但还没有找到任何解决方案......
任何建议或帮助都会有很大的帮助..提前感谢。
答案 0 :(得分:0)
尝试修改select
句子。
$this->db->select('student_skills.*, followers.*');