php - 使用 or_like codeigniter 时 join 未给出所需结果

标签 php mysql codeigniter activerecord join

$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 名称 user_id

1 礼帽 5

2 领导者 5

3 好的倾听者 6

4 顶部 6

关注者表:

id teacher_id student_id

1 7 5

1 7 6

1 7 8

我编写了上述模型函数,用于从 Student_skills 表中获取跟随特定教师 ($teacherID) 并具有指定技能 ($skills) 的学生的学生 ID。 .

当我使用多种技能(例如:好听众、礼帽等)或单一技能(例如:礼帽)运行上述函数时,它运行时不会显示任何错误..但它为我提供了所有具有指定技能的学生,并且我希望只有跟随特定老师的学生..并且具有指定的技能..

但是当我评论or_like语句时,它给了我所需的结果,但多种技能不起作用。ex:topper工作和ex:topper,topper 工作但例如:topper、leader 不工作

我花了两天的时间来解决这个问题..但还没有找到任何解决方案....

任何建议或帮助都会有很大的帮助..提前致谢。

最佳答案

尝试修改select句子。

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

关于php - 使用 or_like codeigniter 时 join 未给出所需结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21416415/

相关文章:

php - codeigniter session 同时交换多个请求

php - 使用PHP数组将数据插入MYSQL

php - 如何处理 PHP 中的 fatal error ?

php - 生成静态页面 - 了解 URL 请求

mysql - 使用form通过join表更新has_many

PHP 不将日期存储在 MySQL 表列中

file - 在 CodeIgniter 中加载多种语言文件

php - 更新存储过程中的数组数据

php - 使用 PHP 查询带有 IN 子句的 MySQL

php - Beanstalk 获取套接字错误 110 : Connection timed out