在codeigniter中添加两个数组变量

时间:2015-11-17 16:50:16

标签: php codeigniter

我正在构建一个系统,我需要更新数据库字段中的值,但在此之前我需要获取数据库中的当前值,然后将其添加到当前值,以下是来自控制器的代码。 / p>

public function transfer_amount(){



    $email  =  $this->input->post('view');

    $this->load->model('user_model');

    $data['user_balance'] = $this->user_model->fetch_balance($email);

    $data['balance'] = $this->input->post('amount');

    $data['total'] = $this->math->add($data['balance'],$data['user_balance']);


    $data = array(

            'balance' => $data['total'],

    );




    if($this->user_model->transfer_amount($data,$email)== true){


        $this->load->view('layer_service/success',$data);


    }
    else
    {


        $this->load->view('layer_service/unsuccessfull',$data);
    }



}

}

然后,从数据库中获取当前余额的模块中的代码如下所示。

 function fetch_balance($email){


    $this->db->select('balance');
    $this->db->from('tbl_users');
    $this->db->where('email', $email);

    $query = $this->db->get();
    $result = $query->result();

    return $result;


}

1 个答案:

答案 0 :(得分:0)

不确定,但看看这部分 - 不要把它称为$ data,因为我觉得那会让你搞砸了

例如称之为$ balance

  $balance = array(

            'balance' => $data['total'],

    );

    // pass the $balance to your model method
    if($this->user_model->transfer_amount($balance,$email) == true){

       // keeping $data here to pass to the view 
        $this->load->view('layer_service/success',$data);

    }

获取余额应该包含在if中以防万一

if( ! $data['user_balance'] = $this->user_model->fetch_balance($email) )
{
   $this->_showNoUserFor($email) ; 
} 

另一个建议:

$email  =  $this->input->post('view');

首先验证电子邮件,然后再将其发送到数据库表。 codeigniter表单验证库工作得很好。

==

编辑好这部分

 $data['total'] =   $this->math->add($data['balance'],$data['user_balance']);

意味着您有一个名为math的模型,其方法名为add() 所以,如果你没有,你只需要使用非常简单的PHP数学

$data['total'] = $data['balance'] + $data['user_balance'] ; 

当然这假设所有内容都已经过验证,因此您实际上将两个数字相加。