Codeigniter:两个表查询

时间:2015-03-11 12:39:12

标签: php mysql codeigniter

我想要查询两个表。一张桌子有诊所记录,另一张桌子有实验室记录。这导致(消息:尝试获取非对象的属性)。我错过了什么?

我希望看到临床表中的PID但不在实验室表中。

我的控制器:

function queries(){
    $data['results'] = $this->main_model->queries();
    $this->load->view('queries', $data);

}

我的模特:

function queries(){

    $this->db->select('*');
    $this->db->from('clinic');
    $this->db->where('participantID NOT IN (SELECT  participantID FROM lab)', NULL, FALSE);
    $results = $this->db->get();
    return $results;
}

最后,我的观点:

<?php 

foreach($results as $row){


echo " <tr > <td> $row->participantID </td>  <td> </td> <td> </td> <td> </td> <td> </td> <td> </td></tr>";


} 

?>

2 个答案:

答案 0 :(得分:1)

控制器:

function getall(){      
$this->load->model('result_model');
$data['query'] =$this->result_model->result_getall();
print_r($data['query']);
die();
$this->load->view('result_view', $data);
}

型号:

function result_getall(){

$this->db->select('*');
$this->db->from('tblanswers');
$this->db->join('credentials', 'tblanswers.answerid = credentials.cid', 'left'); 
$query = $this->db->get();
return $query->result();

}

视图:

 <?php foreach ($query as $row): ?>      

     <?php echo $row->answerA;?><br>

     <?php endforeach; ?>  

答案 1 :(得分:0)

问题在于你的模型。您没有返回正确的数组结果。您必须先使用get()构建查询并将其放入$q之类的变量中,然后使用该变量和result()方法获取结果,如下所示:

$q = $this->db->get(); 
return $q->result();