2015-01-19 2 views
0

Когда я вставляю массив в db, я получаю ошибку «неопределенный индекс» в некоторых переменных, даже если все они имеют соответствующие значения. Пробовал использовать print_r, и он возвращал массив со значениями, но когда я пытаюсь вставить массив, значения становятся нулевыми. Я не понимаю, почему, и я не вижу ошибки в моем коде.Ошибка ввода массива в codeigniter

вот мой контроллер

public function test() 
{ 

    if($this->session->userdata('logged_in')) 
    { 
     $session_data = $this->session->userdata('logged_in'); 
     $user_id = $session_data['user_id']; 

     $table_id = $this->input->post('table'); 
     $start = $this->input->post('start'); 
     $end = $this->input->post('end'); 

     $query = $this->process_resto_list->test($table_id); 


     if ($query->num_rows() > 0) 
     { 
      $row = $query->row(); 

      $resto_id = $row->resto_id; 
      $table_number= $row->table_number; 
      $table_size = $row->table_size; 
     } 
     //$resto_id = $session_data['user_id']; 

     $values = array(
       'resto_id'    => $resto_id, 
       'diner_id'    => $user_id, 
       'date'     => $this->input->post('date'), 
       'start_time'   => $start, 
       'end_time'    => $end, 
       'table_number'   => $table_number, 
       'number_of_people'  => $table_size, 
     ); 

     if($this->process_resto_list->insert_reservation($values)) 
      redirect('reservation_test/reservation', 'location'); 
     //print_r($values); 
    } 

Вот моя модель

public function insert_reservation($values) 
{ 
    date_default_timezone_set("Asia/Manila"); 
     $data = array(

       'resto_id'    => $values['resto_id'], 
       'diner_id'    => $values['user_id'], 
       'date'     => date('Y-m-d'), 
       'start_time'   => $values['start'], 
       'end_time'    => $values['end'], 
       'table_number'   => $values['table_number'], 
       'number_of_people'  => $values['table_size'], 

      ); 

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

При использовании print_r вот результат массива

Array ([resto_id] => 9 [diner_id] => 14 [date] => [start_time] => 11:00 [end_time] => 13:00 [table_number] => 6 [number_of_people] => 4)

Пожалуйста, помогите мне указать на ошибку. Спасибо

+0

Пожалуйста, дайте нам точный текст сообщения об ошибке –

+0

PHP-обнаружена ошибка Серьезность: Уведомление Сообщение: Undefined индекс: user_id Имя файла: модели/process_resto_list.php Line Number: 72 @Bulk – user3400419

+0

Вы назначаете 'user_id'' diner_id' в контроллере. –

ответ

1

В вашей модели. Измените значения следующим образом:

$data = array(

      'resto_id'    => $values['resto_id'], 
      'diner_id'    => $values['diner_id'], 
      'date'     => date('Y-m-d'), 
      'start_time'   => $values['start_time'], 
      'end_time'    => $values['end_time'], 
      'table_number'   => $values['table_number'], 
      'number_of_people'  => $values['number_of_people'], 

     ); 
+0

Справа !!! так глупо от меня! Я буквально злюсь на себя прямо сейчас, чтобы не заметить эту ошибку. Большое вам спасибо @AmBhar – user3400419

+0

@ user3400419 Рад узнать, что ваша проблема решена. :) –

+0

@ user3400419 Пожалуйста, отметьте его как принятый ответ. –

0

Я только что заменил свою модель на это. Всем спасибо!

$data = array(

      'resto_id'    => $values['resto_id'], 
      'diner_id'    => $values['diner_id'], 
      'date'     => date('Y-m-d'), 
      'start_time'   => $values['start_time'], 
      'end_time'    => $values['end_time'], 
      'table_number'   => $values['table_number'], 
      'number_of_people'  => $values['number_of_people'], 

     ); 
Смежные вопросы