Codeigniter:如何更新不会影响特定列的金额
Posted
技术标签:
【中文标题】Codeigniter:如何更新不会影响特定列的金额【英文标题】:Codeigniter: How to update an amount that will not affect a specific columns 【发布时间】:2018-01-14 06:57:33 【问题描述】:大家好,我在模型中的查询有问题,我会在解释之前向您展示代码。
for($x = 1; $x <= count($this->input->post('subparticulars')); $x++)
$feetype = $this->input->post('subparticulars')[$x];
$student = $this->input->post('substudentid');
$schoolyear = $this->input->post('subschoolyeardata');
$month = $this->input->post('month');
$payment = $this->input->post('subpaymentamount')[$x];
$this->db->set('statement_amount', '`statement_amount` -'. $payment, FALSE);
$this->db->where(array('feetype_id !=' => 2, 'feetype_id !=' => 3, 'feetype_id' => $feetype, 'student_id' => $student, 'schoolyear_id' => $schoolyear, 'month_id' => $month));
$status3 = $this->db->update('tbl_statement');
在这里,我有一个添加动态添加行函数,其中包含子明细和子支付中多次付款的金额和详细信息,我正在运行一个查询,该查询将在我的 statement_amounts 中减去我的付款,正如您在 $this 中看到的那样->db->设置。现在,我的 where 子句有问题,如果您尝试理解我的 where 子句,这就是条件。
我想更新我的所有费用,除了具有 feetype_id: 2 和 3 的费用,但另一个费用类型_id 将被更新,我该如何实现。当我运行代码时,它仍然会减去 feetype_id 为 2 和 3 的费用。
【问题讨论】:
【参考方案1】:这是正确答案
for($x = 1; $x <= count($this->input->post('subparticulars')); $x++)
$feetype = $this->input->post('subparticulars')[$x];
$student = $this->input->post('substudentid');
$schoolyear = $this->input->post('subschoolyeardata');
$month = $this->input->post('month');
$payment = $this->input->post('subpaymentamount')[$x];
if ($feetype == 2 OR $feetype == 3)
$this->db->set('statement_amount', '`statement_amount` -'. $payment, FALSE);
$this->db->where(array('feetype_id' => $feetype, 'student_id' => $student, 'schoolyear_id' => $schoolyear));
$status3 = $this->db->update('tbl_statement');
else
$this->db->set('statement_amount', '`statement_amount` -'. $payment, FALSE);
$this->db->where(array('feetype_id' => $feetype, 'student_id' => $student, 'schoolyear_id' => $schoolyear, 'month_id' => $month));
$status3 = $this->db->update('tbl_statement');
【讨论】:
以上是关于Codeigniter:如何更新不会影响特定列的金额的主要内容,如果未能解决你的问题,请参考以下文章
Phpmyadmin+codeigniter 如何自动更新我的数据?
php Event Tickets Plus v4.6 +:保存后将所有WooCommerce门票分配到特定产品类别(创建或更新,不会影响旧刻度)
php Event Tickets Plus v4.6 +:保存后将所有WooCommerce门票分配到特定产品类别(创建或更新,不会影响旧刻度)