繁体   English   中英

Codeigniter-检查数据库中是否存在数组中的值不起作用

[英]Codeigniter - Check if a value from array exists in database not working

我有一个名为user的表,其中有一个名为sub_teams的列。 我已经在其中存储了诸如Construction,Teamwork,Website等的值。

我有一个称为公告的公告表,其中有一个body列和一个sub_teams列。

usersannouncements中两个sub_teams列中的所有值sub_teams逗号分隔存储值。 我要实现的是,如果公告中有一行包含“ Construction,Website ,而用户具有“ Website,Teamwork则由于他位于“ ConstructionWebsite,Teamwork因此他能够查看公告。 编辑 :但是,我想显示具有sub_teams不只是一个的所有公告行。

我该如何实现? 我已经试过了:

    $uid = $this->session->userdata('uid');
    $this->db->select('sub_teams');
    $this->db->from('users');
    $this->db->where('uid', $uid);
    $sub_teams_query = $this->db->get();
    $sub_teams_result = $sub_teams_query->row();
    $sub_teams = explode(',', $sub_teams_result->sub_teams);

    $this->db->limit($limit, $start);
    $this->db->select('*');
    $this->db->from('announcements');
    $this->db->where('active', 1);
    $this->db->where('date_created <', date('Y-m-d H:m:s')); //hide the announcements that are new and not published yet.

    foreach ($sub_teams as $sub_team) {
        $this->db->or_like('view_sub_teams', $sub_team);
    }


    $this->db->join('users', 'users.uid = announcements.uid');
    $this->db->order_by('date_created', 'desc', 'after');
    $query = $this->db->get();

它似乎不起作用,因为它显示每个公告。 多谢你们。

如果消息没有错,则说明您正在获取特定用户的公告。 它返回因为在第二次查询的所有行,你已经错过了whereuserId条件

$this->db->where('uid', $uid);

在第二个查询中添加where条件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM