gpt4 book ai didi

php - 使用 foreach 循环在 codeigniter 中添加 OR WHERE 语句

转载 作者:行者123 更新时间:2023-11-29 02:14:53 27 4
gpt4 key购买 nike

我正在使用 codeigniter 框架,我想使用 foreach 循环创建一个 OR WHERE 语句,

下面是我的代码,

$wh_q = array('ec_date >' => $start, 'ec_date <=' => $end);

这将产生查询 WHERE ec_details.date > '2016-11-01 00:00:00' AND ec_details.date <= '2017-01-07 00:00:00'

现在我想在上面的查询字符串中使用 AND ec_details 添加更多条件. user_id = '5' 或 ec_details . user_id = '6' 等等。

现在user_id、5、6都是数组结果来的,

$user_string = '5,6';
$users_array = explode(",",$user_string);

foreach ($users_array as $user) {
$query = array('ec_details.user_id' => $user);
}

然后我在上面合并$query原始数组 $wh_q数组

$wh_q = array_merge($wh_q, $query);

最后我选择下面的位置,

$this->db->where($wh_q);

但这不会产生我需要的查询,而只会像下面这样创建,

`WHERE `ec_details`.`date` > '2016-11-01 00:00:00' AND `ec_details`.`date` <= '2017-01-07 00:00:00'`AND `ec_details`.`user_id` = '6'`

如何在 codeigniter 中使用 foreach 循环添加 AND OR WHERE 语句?

谢谢,

最佳答案

尝试如下...

$wh_q = array('ec_date >' => $start, 'ec_date <=' => $end);//condition first

$user_string = '5,6';
$users_array = explode(",",$user_string);

foreach ($users_array as $user) {
$query []= array('ec_details.user_id' => $user);//second condition
}

//print_r($query) //multidimensional array

查询

$this->db->where($wh_q);

$total = count($query);
for($i=0;$i<$total;$i++){
$this->db->or_where($query[$i]);
}

关于php - 使用 foreach 循环在 codeigniter 中添加 OR WHERE 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41530193/

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