php - 在数据库codeigniter中插入多个值?

标签 php mysql codeigniter activerecord

如果使用多个复选框选中行,我想一键在数据库中插入多行 enter image description here

这是我的代码=> 1) Controller :guard.php (在这里,我获取一系列学生 ID 列表,并将它们逐个传递给另一个函数 get_leave_data,该函数获取学生 ID 并从另一个表 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;
    }


    }

最佳答案

您正在尝试使用 codeignator 插入batch_array

使用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这里

关于php - 在数据库codeigniter中插入多个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29842089/

相关文章:

php - 如何防止提交后html被清除

mysql - 从数据库中获取一行,从行中删除一个元素并将该行更新回数据库

javascript - 当我传递静态数据时,它将成功存储数据。当我传递动态数据时,它不会存储数据。如何传递动态数据

php - 如何使用 session 将用户事件存储到数据库: Codeigniter

php - 根据坐标对MySQL记录进行排序

php - 在鼠标悬停时显示具有动态数据的 Div

php - 如何用php自动完成mysql数据库?

mysql pyramid initialise db 使用有效数据生成无效语法

php - 项目链接在 Wamp 服务器上不起作用

mysql - vert.x async jdbc 不会关闭连接