2015-09-16 39 views
2

我有兩個名爲verification_detailsverification_questions的db表。 verification_id在兩個表格中很常見。在verification_details表中,有一個user_id字段,基於此user_id字段,將一個或多個驗證詳細信息插入到verification_details表中,並基於插入verification_questions表中的verification_id一個或多個驗證問題。 我用這個代碼模型連接查詢加入表並使用codeigniter將數據提取到表中

function get_records() { 

    $this->db->select("a.criteria_question,a.criteria_answer,a.validation_statement"); 
     $this->db->from("verification_questions as a"); 
     $this->db->join('verification_details as b', 'a.verification_id = b.verification_id'); 
     $query = $this->db->get(); 
     return $query->result();  
} 

我想要的控制器代碼從兩個表中獲取所有提交的數據,並在表中顯示。

回答

5

在模型

function get_records() { 

    $this->db->select("a.criteria_question,a.criteria_answer,a.validation_statement"); 
    $this->db->from("verification_questions as a"); 
    $this->db->join('verification_details as b', 'a.verification_id = b.verification_id'); 
    $query = $this->db->get(); 
    $result = $query->result_array(); 
    return $result; 
} 

在位指示

$data['table'] = $this->Model_name->get_records(); 
$this->load->view('view_name',$data); 

並鑑於

<table> 
    <tr> 
     <th>Question</th> 
     <th>Answer</th> 
     <th>Validation</th> 
    </tr> 
    <?php 
     foreach ($table as $new_item) 
     { 
      ?> 
      <tr> 
       <td><?php echo $new_item['table field1']?></td> 
       <td><?php echo $new_item['table field2']?></td> 
       <td><?php echo $new_item['table field3']?></td> 
      </tr> 
     <?php 
     } 

    ?> 
</table> 
3

您可以在模型中創建結果數組並在控制器中使用它。

型號:

function get_records() 
{ 
     $this->db->select("a.criteria_question,a.criteria_answer,a.validation_statement"); 
     $this->db->from("verification_questions as a"); 
     $this->db->join('verification_details as b', 'a.verification_id = b.verification_id'); 
     $query = $this->db->get(); 
     $select = array(); 
     foreach ($query->result() as $row) { 
      $select[] = $row; 
     } 
     if (count($select) > 0) 
      return $select; 
     return NULL; 
} 

您可以使用此功能在控制器獲得結果數組。

控制器:

$data['result']=$this->modelname->get_records(); 
$this->load->view('your_view', $data); 

而且,最後你必須通過結果變量,查看顯示在表中。

檢視:

<table><tr><td>Question></td></tr> 
    if(count($result)>0){ 
     foreach($result as $row){ ?> 
      <tr><td><?= $row->criteria_question; ?></td></tr> 
     <?php} 
    } ?> 
</table> 
+1

你的代碼幾乎是正確的。但是,你讓它變得冗長,我的意思是不需要使用foreach循環兩次,你也可以使用單一時間來實現它!但我感謝你的指導! – Saty

+1

你是對的,阿卜杜拉雖然做到了! –

相關問題