gpt4 book ai didi

php - Codeigniter Active Record IF 语句

转载 作者:搜寻专家 更新时间:2023-10-30 23:38:09 24 4
gpt4 key购买 nike

我有一个这样的模型函数:

function get_dtsample083($dt_date_production,$dt_filler) {
$this->db1->select('detail_id_sample as detail_id083, detail_id as detail_id_mic, detail_id_sample087_096, headerid_sample, sampling_time, sample_code, product_id, temp, filler, ph, csp_la_35, csp_la_55, tab, operator, remark, rough_mic');
$this->db1->from('tb_lqs083dtl');
$this->db1->join('tb_lqs083hdr', 'tb_lqs083hdr.headerid = tb_lqs083dtl.headerid');
$this->db1->where('tb_lqs083hdr.date_production',$dt_date_production);
$this->db1->where('tb_lqs083hdr.filler',$dt_filler);

$try1 = 'Finished Product Coconut Cream';
$try2 = 'Finished Product';

if($this->db1->where('tb_lqs083hdr.product_type',$try1)) {
$this->db1->where('tb_lqs083hdr.product_type',$try1);
$this->db1->where('tb_lqs083dtl.stdtl','1');
$this->db1->order_by("tb_lqs083dtl.headerid_sample", "asc");
$this->db1->order_by("tb_lqs083dtl.detail_id_sample087_096", "asc");
$this->db1->order_by("tb_lqs083hdr.temp", "asc");
} elseif($this->db1->where('tb_lqs083hdr.product_type !=',$try1)) {
$this->db1->where('tb_lqs083hdr.product_type',$try2);
$this->db1->where('tb_lqs083hdr.product_name','Coconut Cream');
$this->db1->where('tb_lqs083dtl.stdtl','1');
$this->db1->order_by("tb_lqs083dtl.headerid_sample", "asc");
$this->db1->order_by("tb_lqs083dtl.detail_id_sample087_096", "asc");
$this->db1->order_by("tb_lqs083hdr.temp", "asc");
} else {}

$query = $this->db1->get();
echo $this->db1->last_query();
if ($query->num_rows() > 0) {
return $query->result();
}
}

第一个 if 语句总是在查询执行时执行,我希望第二个 if 语句也被执行。

我有一个查询条件:

  • if column tb_lqs083hdr.product_type = 'Finished Product Coconut Cream' 然后首先执行 if 语句。

  • else if column tb_lqs083hdr.product_type = 'Finished Product' then second if statement will be execute.

这两个条件看起来彼此相似,但在我的表中两个条件有不同的值。

我仍在评估我的查询。因此,我们将不胜感激。

谢谢。

最佳答案

您不能在条件只是设置数据库调用的情况下执行 if 语句。由于始终设置 where 语句,因此始终满足第一个条件。

您可以通过多种方式解决此问题,但您需要解决代码的逻辑问题。

您可以运行查询以查明“tb_lqs083hdr.product_type”是否找到 try1。然后在您的 if 语句中使用该查询的结果进行第二个查询。

您可以在查询构建器中使用条件语句:

    $this->db->select('*')->from('my_table')
->group_start()
->where('a', 'a')
->or_group_start()
->where('b', 'b')
->where('c', 'c')
->group_end()
->group_end()
->where('d', 'd')
->get();

http://www.codeigniter.com/user_guide/database/query_builder.html#query-grouping

但是,在 PHP 中,如果您正在编写一个 if 语句,它需要有一个可以为 TRUE 或 FALSE 的参数,否则在您的代码中没有意义。

希望对你有帮助

关于php - Codeigniter Active Record IF 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38821398/

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