2015-04-24 3 views
0

Я хочу вставить несколько строк в базе данных по одним щелчку мыши, если строка проверяется с использованием несколько флажка enter image description hereВставка нескольких значений в codeignign базы данных?

Вот мой код => 1) Контроллер: guard.php (Здесь я беру массив списка студента id и передавать их один за другим другой функции get_leave_data, которая принимает идентификатор студента и возвращает дополнительную информацию об ученике из другой таблицы leave_application).

public function students_out(){ 
    $request=$this->input->post('approve_leave_status'); 
    if($request=="OUT"){ 
    $check_list_out[]=$_POST['check_list_out']; 
    if(!empty($check_list_out)){ 
      foreach ($check_list_out as $check_list_id) { 
      $student_data=$this->get_leave_data($check_list_id); 
      $this->insert_student_outside($student_data); 
      } 
      $this->load->helper('url'); 
      $this->load->view('view_guard'); 
    } 
}else{ 
    $this->load->helper('url'); 
    $this->load->view('view_guard'); 
} 

} ` 

public function get_leave_data($id){ 
$this->load->model('model_guard'); 
$data=$this->model_guard->get_data($id); 
return $data; 
} 

public function insert_student_outside($std_data){ 
    $this->load->model('model_guard'); 
    $data=$this->model_guard->insert_student_out($std_data); 
return $data; 
} 

2) Модель: model_guard.php (Функции get_data() и get_data2() возвратные больше информации о студенческой и функции insert_student_out() вставки студента к student_outside table)

public function get_data($id){ 
    $this->db->select('leave_id,leave_from_roll_no,leave_student_name,leave_going_to,leave_from_date,leave_till_date,leave_hostel_no,leave_status'); 
    $this->db->from('leave_application'); 
    $this->db->where('leave_id',$id[0]); 
    $query=$this->db->get(); 
    $data1=$query->result(); 
    $data2=$this->get_data2($data1); 
    $final_array=array_merge($data1,$data2); 
    return $final_array; 
    } 

    public function get_data2($array){ 
    foreach ($array as $key) { 
    $roll_no=$key->leave_from_roll_no; 
    } 
    $this->db->select('student_year,student_semester,student_parent_email'); 
    $this->db->from('students'); 
    $this->db->where('student_roll_no',$roll_no); 
    $query=$this->db->get(); 
    $data=$query->result(); 
    return $data; 
    } 

    public function insert_student_out($std_data){ 
    $roll_no=$std_data[0]->leave_from_roll_no; 
    $id=$std_data[0]->leave_id; 
    $date_out=date('Y-m-d'); 
    $inside_date=NULL; 
    $date_allowed=$std_data[0]->leave_till_date; 
    $array=array(
    'outside_id'=>$id, 
    'outside_roll_no'=>$roll_no, 
    'outside_date_out'=>$date_out, 
    'outside_date_in'=>$inside_date, 
    'outside_date_allowed'=>$date_allowed 
    ); 
    if($this->db->insert('students_outside',$array)){ 
     return true; 
    }else{ 
     false; 
    } 


    } 
+0

Я не видел тебя вызовите файл модели в своем контроле – Saty

+0

В чем проблема. –

+0

в соответствии с @saty вы должны загрузить свою модель, а затем вызвать ее у своего контроллера. –

ответ

0

вы пытаетесь вставить batch_array с помощью codeignator

Правый синтаксис для использования batch_array: -

$array=array(
    'coloum_name'=>$id, 
    'coloum_name'=>$roll_no, 
    'coloum_name'=>$date_out, 
    'coloum_name'=>$inside_date, 
    'coloum_name'=>$date_allowed 
    ); 

if($this->db->insert_batch('students_outside',$array)){ 
     return true; 
    }else{ 
     false; 
    } 

вы можете прочитать руководство insert_batch здесь

+0

я получаю ошибки с помощью insert_batch Серьезность: Предупреждение Сообщение: array_keys() ожидает параметр 1, чтобы быть массив, строка, заданная Имя файла: база данных/DB_active_rec.php Порядковый номер: 1114 –

+0

@electron я есть редактировать мой пост имя столбца - это имя столбца таблицы – Saty

+0

также не работает –

0

хорошо, я предполагаю, что в $std_data у вас есть более чем один record.then в insert_student_out() функции вашей модели попробуйте this-

public function insert_student_out($std_data){ 

foreach($std_data as $row){ 
     $roll_no=$row->leave_from_roll_no; 
     $id=$row->leave_id; 
     $date_out=date('Y-m-d'); 
     $inside_date=NULL; 
     $date_allowed=$row->leave_till_date; 
     $array=array(
       'outside_id'=>$id, 
       'outside_roll_no'=>$roll_no, 
       'outside_date_out'=>$date_out, 
       'outside_date_in'=>$inside_date, 
       'outside_date_allowed'=>$date_allowed); 

     $this->db->insert('students_outside',$array); 

    } 
} 
+0

$ std_data - это объект, а не массив объектов –

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