Как исправить ошибки параметров в PHP?

0

Это мой контроллер:

public function admin_debit()
{
    $date= date('Y-m-d H:i:s');
    $trans_type=2;
    $amount=$this->input->post('amount'); 
    $total_amount = array_sum($amount);
    $json=json_encode($_POST);  
    $user=$this->session->userdata('sess_pt_userid');
    $data=array(
                   'dated_on'=>$date,
                   'amount'=>$total_amount, 
                   'userid'=>$user,
                    'purpose'=>$json,
                    'trans_type'=>$trans_type
                 );
 $response = $this->Petty_model->debit_insert($data);
 //add flash data 
         if($response)
         {
           $this->session->set_flashdata('success', 'Cash Debited Successfully ');
           redirect('Petty_controller/debitview');
         }
     else
       {
         $this->session->set_flashdata('error', 'Something worng. Error!!');
         redirect('Petty_controller/debitview');
       }      
}

Здесь в моем коде произошла ошибка:

array_sum() ожидает, что параметр 1 будет массивом, значение null.

Я получаю еще одну ошибку, которая гласит:

Столбец "сумма" не может быть нулевым

  • 0
    Пожалуйста, проверьте стоимость суммы, из которой вы получаете.
  • 0
    array_sum требует параметра в виде массива, здесь переменная передается. пожалуйста, прочитайте: php.net/manual/en/function.array-sum.php
Показать ещё 4 комментария
Теги:
codeigniter
session

3 ответа

1

просто проверьте, являются ли почтовые данные суммы массивом

$total_amount=0;
if($this->input->post('amount') && is_array($this->input->post('amount')){
 $total_amount = array_sum($this->input->post('amount'));
}
$date= date('Y-m-d H:i:s');
$trans_type=2;
$json=json_encode($_POST);  
$user=$this->session->userdata('sess_pt_userid');
$data=array(
               'dated_on'=>$date,
               'amount'=>$total_amount, 
               'userid'=>$user,
                'purpose'=>$json,
                'trans_type'=>$trans_type
             );
$response = $this->Petty_model->debit_insert($data);
1
 $amount=$this->input->post('amount'); 
 $total_amount = array_sum($amount);

здесь $amount равна нулю, потому что из ввода ничего не получает. и array_sum требует использования массива. вместо этого он получает значение null, поэтому исключение возникает

1

Если ваша сумма равна "1,2,3", тогда вам нужно установить это в массиве

$amount = '1,2,3';

$amount = explode(",",$amount);

$total_amount = array_sum($amount);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню