2017-05-16 9 views
2

codeigniter 및 grocery crud를 사용하여 마지막으로 삽입 한 ID를 가져올 수 없습니다. 필드를 자동 채우기로 전달할 수 없습니다. 어떻게해야합니까? ID를 반환하고 숨겨진 필드를 전달하는 함수로 해결하려고합니다.자동 완성 양식 필드에 마지막으로 삽입 된 ID를 가져올 수 없습니다.

편집 됨. 모든 것이 올바른 순서로 진행되고 있습니다.

데이터베이스 (관여 테이블 : citas, entregas)

Database

반응식 (삽입 CITA = 일자)

Image from the process

모델 함수

public function get_id(){     

    //$this->db->query('SELECT MAX(cita) FROM citas;'); 
    $this->db->insert_id(); 
    $query = $this->db->get(); 

    echo $query; 

    return $query->result();   

} 

컨트롤러 (전체 컨트롤러 기능)

public function entregas_lista($idCarga) { 

     $crud = new grocery_CRUD(); 



     if ($this->Entregas_Model->get_rows($idCarga)) { 
      $crud->unset_add(); 
     } 


     $datos = array(
      'title' => "Solicitudes", 
      'username' => "Administrador" 
     ); 

     $this->load->view('commons/header', $datos); 



     $crud->set_language("spanish"); 
     $crud->set_theme('flexigrid'); 

     $crud->set_table('entregas'); 


     $crud->display_as('idCitas', 'Cita'); 
     $crud->display_as('idAcciones', 'Acción'); 
     $crud->display_as('idEstadoSolicitud', 'Estado Solicitud') 
       ->display_as('horaCita', 'Hora Cita') 
       ->display_as('numeroEntrega', 'Nº Entrega') 
       ->display_as('Origen', 'Orígen') 
       ->display_as('cargaPrevista', 'Carga Prevista') 
       ->display_as('entregaPrevista', 'Entrega Prevista'); 



     $crud->where('entregas.idCitas =', $idCarga); 

     $crud->display_as('idCarga', 'Nº Entrega'); 


     $crud->set_relation('idEstadoSolicitud', 'estadosolicitudes', 'nombreEstado'); 




     $query = $this->Entregas_Model->get_id(); 

     $crud->field_type('idCitas', 'hidden', $query); 

     $output = $crud->render(); 

     $this->_example_output($output); 


     $this->load->view('commons/footer'); 
    } 

답변

4

CodeIgniter의에서 insert_id()을 사용하려면, 당신은 당신의 DB에 새 행을 삽입해야합니다. MAX(id)

$this->db->insert('test_table', $test_data); 
return $this->db->insert_id(); 

예 : 그렇지 않으면 당신은 당신의 테이블에서 insert_id()

예제 MAX(id)을 선택해야

$qry = $this->db->select('MAX(id)') 
       ->from('test_table') 
       ->get(); 
     if ($qry->num_rows() > 0) 
      return $qry->row_array(); 
     return FALSE; 

을 당신은 당신의 컨트롤러에서 그것을 잡아.

+0

고맙습니다.하지만 예제 2 (MAX (ID))를 사용하고 있습니다. 저장하고 목록에 다시 돌아올 수 없으며 입력란이 비어 있습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? (위의 빈 필드 이미지) – Jose

+0

식료품 점 crud에 무언가를 저장하고 다른 것을 저장하기 위해 다시 돌아가고 싶습니까? 솔직히 내가하는 일이 무엇인지 이해하는 것은 너무도 분명하지 않습니다. – GeorgeGeorgitsis

+0

그게, 내가 테이블을 가지고, 첫 번째 테이블에서 나는 날짜를 만들고 있는데,이 날짜는 그 날짜의 내용으로가는 callback_column이지만, 두 번째 테이블에 뭔가를 추가 할 때, 날짜를 묻는 것입니다. 다시 (Cita = 날짜). 내가 만든 날짜의 이드를 호출하여 해당 필드에 넣고 싶습니다. 가능한가? – Jose

1

$insert_id= $this->db->insert_id();

메아리 $this->db->insert($table,$data);

후 $ INSERT_ID;