2017-05-16 12 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

Grocery crudに何かを保存して、何かを保存するためにもう一度戻ってみたいのですか?正直なところ、あなたがしようとしていることを理解することはあまり明確ではありません。 – GeorgeGeorgitsis

+0

それは、私はテーブルを持っているので、最初のテーブルに私は日付を作成しています、この日付は、その日付の内容に行くcallback_columnですが、私は2番目のテーブルに何かを追加すると、もう一度(Cita =日付)。私が作成した日付のidを呼び出して、そのフィールドに入れたいと思います。出来ますか? – Jose

1

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

エコー$this->db->insert($table,$data);

後$ INSERT_ID。

関連する問題