我正在构建一个系统,我需要更新数据库字段中的值,但在此之前我需要获取数据库中的当前值,然后将其添加到当前值,以下是来自控制器的代码。 / 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;
}
答案 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'] ;
当然这假设所有内容都已经过验证,因此您实际上将两个数字相加。