gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 22:32:52 27 4
gpt4 key购买 nike

我有一个名为 user 的表,其中有一列名为 sub_teams。我在那里存储了值,例如 Construction、Teamwork、Website 等。

我有一个名为 announcements 的公告表,其中有一个正文列和一个 sub_teams 列。

usersannouncementssub_teams 列中的所有值都以逗号分隔存储。我想要实现的是,如果公告的其中一行有 Construction,Website 并且用户有 Website,Teamwork 那么他就可以查看公告,因为他在 Construction 子团队中。 编辑:但我想显示包含 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();

它似乎不起作用,因为它会显示每一个公告。谢谢大家。

最佳答案

如果我没记错的话,您正在获取特定用户的公告。它返回所有行,因为在第二个查询中,您错过了 userId 条件的 where

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

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

关于php - Codeigniter - 检查数据库中是否存在数组中的值不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33391478/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com