gpt4 book ai didi

php - codeigniter 多个 or where,忽略 where not

转载 作者:行者123 更新时间:2023-11-29 07:57:34 28 4
gpt4 key购买 nike

我正在尝试根据活跃成员以及他们志愿从事的工作,在志愿者数据库中创建用户列表。

问题是,它也包括不活跃的成员。

这是我的 Controller

function View_Vol_LIST()
{
$data = array();

if($query = $this->report_model->Volunteer_list())
{
$data['records'] = $query;
}
$data['main_content'] = 'volunteer_list';
$this->load->view('includes/template', $data);
}

这是我的模型

function Volunteer_list()
{
$query = $this->db->order_by('Last_Name', "ASC");
$query = $this->db->order_by('First_Name', "ASC");
$query = $this->db->where('Membership_Status !=', 'DNR');
$query = $this->db->where('Vol_FA =', 'yes');
$query = $this->db->or_where('Vol_TEL =', 'yes');
$query = $this->db->or_where('Vol_CD =', 'yes');
$query = $this->db->or_where('Vol_SCBA =', 'yes');
$query = $this->db->or_where('Vol_MAIL =', 'yes');
$query = $this->db->or_where('Vol_SML =', 'yes');
$query = $this->db->or_where('Vol_BODCOM =', 'yes');
$query = $this->db->or_where('Vol_OTHER =', 'yes');
$query = $this->db->get('Membership');
return $query->result();

似乎 or_where 完全覆盖了 where != DNR(未更新)

救命!

谢谢!

最佳答案

请尝试此操作,因为 Codeigniter 中不允许像您在 Active Record 中那样的嵌套查询

public function Volunteer_list(){
$this->db->order_by('Last_Name', "ASC");
$this->db->order_by('First_Name', "ASC");
$this->db->where('Membership_Status !=', 'DNR');
$this->db->where("(Vol_FA='yes'
OR Vol_TEL = 'yes'
OR Vol_CD='yes'
OR Vol_SCBA='yes'
OR Vol_MAIL='yes'
OR Vol_SML='yes'
OR Vol_BODCOM ='yes'
OR Vol_OTHER ='yes')", NULL, FALSE);
$query = $this->db->get('Membership');
return $query->result();
}

NULL 是该查询中的值参数,FALSE 是删除查询引号。

这将产生这样的结果:

SELECT * FROM (`Membership`) 
WHERE `Membership_Status` != 'DNR'
AND (Vol_FA='yes'
OR Vol_TEL = 'yes'
OR Vol_CD='yes'
OR Vol_SCBA='yes'
OR Vol_MAIL='yes'
OR Vol_SML='yes'
OR Vol_BODCOM ='yes'
OR Vol_OTHER ='yes')
ORDER BY `Last_Name` ASC, `First_Name` ASC

关于php - codeigniter 多个 or where,忽略 where not,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24707009/

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