I have been trying to do the update the record in my database but i am getting the echo that the action have not being updated all i want is to update balance field in the database! The following is the code in the controller where i take value that i have passed from ajax and i am passing the email and data to model. Controller.
public function transfer_amount(){
$email = $this->input->post('view');
$data = array(
'balance' => $this->input->post('amount'),
);
$this->load->model('user_model');
if($this->user_model->transfer_amount($data,$email)){
echo'unsuccessfull';
}
else
{
$this->load->view('layer_service/success',$data);
}
}
The Model which is supposed to update the field of the database is as following.
function transfer_amount($data,$email){
$this->db->where('email', $email);
$this->db->update('tbl_users', $data);
// Code here after successful insert
// to the controller
return true;
}
Based on your above comment you need to trim the whitespace from the email.
function transfer_amount($data, $email) {
$this->db->update('tbl_users', $data, array(
'email' => trim($email),
));
// Code here after successful insert
// to the controller
return true;
}
Also in your controller you will want to replace this line
if($this->user_model->transfer_amount($data,$email)){
with
if( ! $this->user_model->transfer_amount($data,$email)) {
As your model returns TRUE
on success but your controller is expecting FALSE
on success.
You can also check that your update was successful and did actually change some rows in the database using a simple if statement such as
if(0 >= $this->db->affected_rows()) {
// update unsuccessful
}
Update
How to add to the current balance in MySQL. You can simply add to the value which is already in the database.
$data = array(
'balance' => 'balance + ' . $this->input->post('amount'),
);