2014-01-28 125 views
1

代碼:最後插入的ID /最新插入ID功能笨

查看

<html> 
<body> 
<?php echo form_open('samplecontroller/sample'); ?> 
<input type="text" name="samplename"/> 
<input type="submit" value="go"/> 
<?php echo form_close(); ?> 
</body> 
</html> 

控制器

<?php 

Class samplecontroller extends CI_Controller 
{ 

    public function __construct() 
    { 
    parent::__construct(); 
    $this->load->model('Sample_insert'); 
    } 

    function index() 
    { 
     $this->load->view('sample.php'); 

    } 

    function show($data) 
    { 
     $this->load->view('sampleresult',$data); 
    } 

    function sample() 
    { 
      if($result = $this->Sample_insert->insert_into_sample()) 
      { 
      $this->show($result); 
      } 

    } 
} 
?> 

型號

<?php 
Class Sample_insert extends CI_Model 
{ 
    function insert_into_sample() 
    { 
     $sample = array(
      'samplename' => $this->input->post('samplename'), 
      );  

     $this->db->insert('sample', $sample); 

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

     return $latest_id; 
    } 
} 
?> 

流程是,我有2個觀點。另一個只包含1個文本輸入,之後發送到控制器,然後控制器將其傳遞給模型,然後模型獲取文本輸入內的值,然後插入到我的示例表中。

樣品表中有2列,ID(PK,AI)和名稱

它插入後,在我的模型。我添加了一行,返回$ latest_id。然後通過回到我的控制器,然後將其傳遞到另一個視圖,只有

print_r($data); 

畢竟,它顯示一個錯誤。

消息:未定義的變量:數據

林不知道其中流動出了問題,或者如果我犯了一個語法錯誤。如果有人知道/ insert_id()方面的專家,你能否指出我錯在哪裏?無論如何,我做了我的研究,並得到了網絡上的結果如何越界insert_id。我不知道如果它的真實或不是,但我主要是重定向到論壇,其中insert_id返回null,有人說它的錯誤。我希望它不是。

+0

你在哪裏得到控制器或視圖中的錯誤? –

+0

該視圖顯然是從模型傳遞到控制器的變量$數據,然後傳遞到視圖。 你願意檢查我是如何從那裏返回變量,並告訴我,如果我做錯了,也許該功能使用錯了? – user3205047

回答

0

根據您的評論,您必須對控制器進行一些更改。

function show($data) 
    { 
     $this->load->view('sampleresult',array("data"=>$data)); 
    } 

您可以在名稱$data中獲取插入的ID。

對於前:

echo $data; 

編輯:按照在回答您的意見,對於模型中的多個行插入,添加以下代碼現在

$id_arr = array(); 
foreach($sample_data as $sample) 
{ 

    $this->db->insert('sample', $sample); 
    $id_arr[] = $this->db->insert_id(); 
} 
return $id_arr; 

在你看來,你會得到$數據中的ID

foreach($data as $id) 
{ 
    echo $id; 
} 
+0

這是否工作,如果我循環並插入5行。例如,我有一個自動增量ID。所以我應該期待它是,0,1,2,3,4對不對? – user3205047

+0

然後,您必須將ID存儲在模型中的數組中。讓我更新我的答案 –

+0

你是一個很好的幫助。順便說一句,最後一個問題, 爲什麼我必須將變量$ data作爲數組傳遞給視圖? 這部分數組(「data」=> $ data)) – user3205047