php - 多行的总和并使用 Codeigniter 插入另一列不起作用

标签 php mysql codeigniter

我的交易表如下

id      acount              dr                 cr               bal
1     Brack Bank          0.00              5000.00               0.00
2     Uttora Bank         0.00              1000.00           5000.00
3     FC Bank             0.00              3000.00           6000.00         
4     purchase         4000.00                 0.00
5     sallary          3000.00                 0.00

我想让我的交易表如下
id      acount             dr                 cr              bal
1     Brack Bank         0.00               5000.00          5000.00
2     Uttora Bank        0.00               1000.00          6000.00
3     FC Bank            0.00               3000.00          9000.00
4     purchase         4000.00                 0.00          5000.00
5     sallary          3000.00                 0.00          2000.00

我的观点
<?php echo form_open('transaction/add',array("class"=>"form-horizontal")); ?>

  <?php $p = $sum[0]->cr; ?><br/> 
  <?php $q =  $sum[0]->dr; ?><br/>

<input type="hidden" value="<?php echo $p - $q ?>" name="calculation">

<input type="text" name="account" value="<?php echo $this->input->post('account'); ?>" class="form-control" id="account" />

<button type="submit" class="btn btn-success">Save</button>

<?php echo form_close(); ?>

我的 Controller
   function add()
    {   
        if(isset($_POST) && count($_POST) > 0)     
        {   
            $params = array(
                'account' => $this->input->post('account'),
                'bal' => $this->input->post('calculation'),
            );

            $accounts_transaction_id = $this->Accounts_transaction_model->update_transactions_balance($params);

            redirect('transaction/index');

        }else{
            $this->load->view('transaction/new_deposit');
          }
    } 

我的模型
   function update_transactions_balance($params)
    {

        $account = $this->input->post('account');
        $bal = $this->input->post('calculation');
        $this->db->set('bal', "bal+$bal", FALSE);
        $this->db->where('account', "$account");
        $this->db->update('accounts_transactions'); 
    }

我想在提交新数据时更新每一行。问题是它没有在第一次插入数据时更新我的​​ bal 列。此外,当我多次插入数据时,它会用错误的值更新它。

Current data

最佳答案

您的预期查询是:

UPDATE accounts_transactions SET bal = bal+$bal WHERE account = '$account';

所以,
<?php
function update_transactions_balance($params)
{  
    $account = $this->input->post('account');
    $bal = $this->input->post('calculation');
    $this->db->query("UPDATE accounts_transactions SET bal = bal+$bal WHERE account = '$account'"); 
}
?>

关于php - 多行的总和并使用 Codeigniter 插入另一列不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40807353/

相关文章:

php - 如果我们在代码文件中添加太多注释,PHP 会变慢吗?

mysql - 每个派生表必须有自己的别名 - 使用多个 SELECT 语句时出错

codeigniter - 从 codeigniter 调用存储过程

mysql - 如何从 CodeIgniter 中的多个表中进行选择

php - 我想计算特定ID的总和

php - 如何拆分数组以将其插入另一个数组以进行 SQL 查询?

php - Codeigniter 3 SQL注入(inject)查询

php - 没有连接关系时SQL返回左表

php - 在 localhost/xampp 上运行 codeigniter 应用程序

php - Smarty,每 4 次迭代新行