2015-09-26 109 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