codeigniter — подсчитать общую сумму в php codigniter

У меня есть небольшая программа для биллинга, написанная на php CodeIgniter. Так я сохраняю значения при отправке платежа

    <?php
public function addPayment() {

$id = $this->input->post('id');
$client_id = $this->input->post('client_id');
$date = strtotime($this->input->post('date_from_addpayment'));
$description = $this->input->post('description');
$cash_pending = $this->input->post('cash_pending');
$cash_recevied = $this->input->post('cash_recevied');

$balance = $cash_pending - $cash_recevied;
?>

Когда происходит каждая транзакция, я хочу суммировать всю задолженность клиента за это время и сохранить ее в таблице баланса в MySQL.
Моя PHPMySQL структура столбца оплаты выглядит следующим образом:

https://i.stack.imgur.com/ELJrL.png

Я просто хочу, чтобы, когда пользователь ДОБАВИЛ ОПЛАТУ, баланс в это время отображался в этом столбце.

Скриншот: https://i.imgur.com/raboF4M.png

-1

Решение

Насколько я понимаю, баланс, причитающийся, cash_pending — все 3 поля относятся — относится к одной и той же цифре — сумма, которая ожидает. Я верю, что вам нужно немного реструктурировать код.

Вам необходимо иметь таблицу, поддерживающую баланс клиентов (например, текущую). Просто вы можете удалить cash_pending / due поля.

Затем вам нужно иметь другую таблицу, в которой будут записываться в транзакции все полученные денежные средства. А когда и когда будут получены деньги, вы можете просто вычесть эту сумму из баланса для клиента.

В случае, если необходимо добавить любую избыточную сумму для чего-то вроде выданных наличных или около того — вы можете добавить их обратно в поле баланса клиента. Так что все время — у вас есть правильный баланс для клиента, а также есть запись всех денежных средств, полученных от пользователя.

0

Другие решения

Прежде чем заканчивать тег php, закройте фигурную скобку вашей функции.

В вашей таблице идентификатор является автоинкрементным, поэтому не нужно принимать идентификатор в качестве входа для хранения в базе данных.

поместите все обязательные поля как структуру таблицы следующим образом.

$data = array('client_id'=>$client_id, 'date'=>$date,

'description'=>$description, 'cash_recevied'=>$cash_recevied, 'cash_pending'=>$cash_pending,

'due'=>$due  );

$this->load->model('Your-model-name');

$this->your-model-name->function-name($data);

Теперь назовите свою модель. а затем в вашей модели сделать это

function FunctionName($data){

return $this->db->insert('tablename', $data);

}
0