2017-09-15 43 views
0

我是新來的笨。在查詢中遇到問題。如何在codeigniter的視圖頁中編寫以下查詢?我怎麼能寫視圖頁上的笨子查詢?

select * 
    from registration_status 
where registtration_card_id = (select Max(registration_card_id) 
            from registration_status 
           where registration_id = 67); 

registration_card_id增量自動和registration_id從登記表提取。

+0

[在笨活動記錄子查詢]的可能的複製(https://stackoverflow.com/questions/6047149/subquery-in-codeigniter-active-record) –

回答

0

到你需要CI的實例加載到視圖。只是按照循序漸進

$ci = & get_instance(); 
$ci->db->query("Your custome query"); 
0

不,不,不。

第一個的所有,你不寫一個查詢CodeIgniter的視圖頁面內。

你必須做的模型,這就是爲什麼CI的MVC框架。

,則可以利用數據庫視圖。如果你正在使用MySQL,你可以創建這樣一個觀點:

CREATE VIEW last_card_id AS 
select * 
from registration_status 

,您可以首先使用聚合函數,而無需使用子查詢,所以搜索會包含基於最大registration_card_id registration_id。所以我們上面編輯觀點:鑑於文件

public function max_card(){ 
    $data['registration'] = $this->registration_model->get_max_card_id($registration_id); 
    $this->load->view('view_page',$data); 
} 

CREATE VIEW last_card_id AS 
selet max(registration_card_id) as 'max_id' 
from registration_status 
group by registration_id 

然後在模型文件,你可以調用模型:

public function get_max_card_id($registration_id){ 
    $this->db->where('registration_id',$registration_id); 
    return $this->db->get('last_card_id')->row_array(); 
} 

然後在你的控制器

<?php echo $registration['max_id'];?> 
+0

由於。爲了迴應。 – Jesica

0

試試這個

$this->db->select("*") 
    ->from("registration_status") 
    ->where("registtration_card_id = (select Max(registration_card_id) from registration_status where registration_id = 67)",false,false) 
      ->get()->result(); 

這是通過使用活性記錄

+0

謝謝,它的工作原理。 – Jesica

+0

@Jesica請給予好評和aprove –