我无法使用codeigniter和杂货店crud获取最后插入的ID,然后将它们传递给自动填充字段。我怎样才能做到这一点?我试图用函数返回id并通过隐藏字段来解决。
邮寄编辑。我正在以正确的顺序工作。
数据库(参与表格:citas,entregas)
Scheme(Cita =插入日期):
模型功能
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');
}
答案 0 :(得分:4)
要在Codeigniter中使用insert_id()
,您必须在数据库中插入新行。否则,您必须从表中选择MAX(id)
insert_id()
的示例:
$this->db->insert('test_table', $test_data);
return $this->db->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;
然后你在控制器中抓住它。
答案 1 :(得分:1)
首先$this->db->insert($table,$data);
$insert_id= $this->db->insert_id();
之后
echo $ insert_id;