2015-09-26 44 views
2

中的2查詢獲得結果由於我真的不知道要輸入什麼內容,所以感到困惑的標題很抱歉。我是新來的CI,現在我試圖將我的代碼轉換爲CI並卡在這裏。如何根據CI

這裏是我的原代碼:

$query_domain = $konek->prepare("SELECT * FROM `domain` WHERE `id` = :id"); 
$query_domain->bindParam(":id", $id); 
$query_domain->execute(); 
$data_domain = $query_domain->fetch(); 

$query_owner = $konek->query("SELECT * FROM `people` WHERE `id` = $data_domain->ownerid"); 
$data_owner = $query_owner->fetch(); 

所以基本上是請求域,其中域ID爲X ,然後請求,基於所有者的ID域表所有者的數據。

我真的不知道擺在控制器什麼或模型 但這裏是我當前的模型:

public function get_domain($id){ 
    $this->db->get_where('domain', array('id' => $id)); 
} 

public function get_domain_owner($ownerid){ 
    $this->db->get_where('client', array('id' => $ownerid)); 
} 
+0

爲什麼不使用SQL連接使用單個數據庫查詢來獲取data_owner? – 0x13a

回答

0

在你(客戶)模式:

public function get_owner_with_domain($domain) 
{ 
    $query = $this->db->select('c.*')-> 
    from('client c')-> 
    join('domain d', 'd.ownerid = c.id')-> 
    where('d.name',$domain)->get(); 

    if ($query) { 
    return $query->row_array(); 
    // Or, ideally return a client if you have a Client model 
    // return $query->row(0,'Client'); 
    } else { 
    // log error? 
    return false; 
    } 
} 

在你控制器:

public function client($domain) // or whatever your function might be called 
{ 
    $this->load->model('Client'); 
    $client = $this->Client->get_owner_with_domain($domain) 
    // Do something with the client 
    // var_dump($client); 
    $view_data['client'] = $client; 
    $this->load->view('client_info',$view_data); 
} 

延伸閱讀:

CodeIgniter ActiveRecord reference

CodeIgniter Results reference

0

你可以簡單地通過使用單個查詢

SELECT people.* FROM people, domain WHERE people.id = domain.ownerId AND domain.id = :id