2016-04-22 65 views
0

我的代碼有什麼問題嗎? 我選擇了一個學生的標識符,並將其存儲在會話中,然後對此進行了測試,以從表中選擇相應的值,並從結果中找到我正在查找的表,但它不起作用。 繼承人的情況,以及我有三個表absence_student(CNE,Idabsence),缺席(iabsence,....),我想從缺席行對應id_student(CNE)。加入使用外鍵codeigniter

public function absence(){ 
$id2= $this->session->CNE; 
$this->db->select('id_absence'); 
      $this->db->from('absence_etudiant'); 
      $this->db->where('CNE',$id2); 
      $query = $this->db->get(); 
      $row=$query->row(); 
if($query->num_rows() == 1) 
{ 

    $id_abs = $row->id_absence; 

} 

$this->db->select('*'); 
      $this->db->from('absence'); 
      $this->db->where('id_absence',$id_abs); 
      $query = $this->db->get(); 
      $result=$query->result(); 
$this->load->view('Etudiants/affi',$result); 


} 
+0

這是什麼部分不起作用?你是否獲得了'$ id_abs'的值?如果你是,並創下真的「由於缺少」滿足條件'在哪裏(「id_absence」,$ id_abs)'存在嗎? – DFriend

回答

0

最簡單的查詢來獲取您想要使用連接的數據。我將使用db->query()

public function absence(){ 
    $id2= $this->session->CNE; 
    $query = $this->db->query("Select * From absence_etudiant Inner Join absence On absence.id_absence = absence_etudiant.CNE Where absence_etudiant.CNE = $id2"); 

    $data['absences'] = $query->result(); 
    $this->load->view('Etudiants/affi', $data); 
} 

我可能沒有加入正確的字段。我不確定我是否理解所涉及的表格結構。這是我最好的嘗試,從你的問題的代碼工作。

查詢結果將在var $absences的視圖中可用。在視圖文件中,可以按如下方式創建每個缺席打印一行的表格。

<table> 
    <?php foreach($absences as $absence) : ?> 
     <tr> 
     <td><strong><?php echo $absence->id_absence; ?></strong></td> 
     <td><?php echo $absence->id_seance; ?></td> 
     <td><?php echo $absence->justification; ?></td> 
     <td><?php echo $absence->course; ?></td> 
     </tr> 
    <?php endforeach; ?> 
    </table> 

我不展示如何創建表的標題行,但如果你想要一個會的<table>標籤和foreach環路之間放。

我應該補充一點,elddenmedio的其他答案在展示如何使用MVC主體構建此過程方面做得更好。他讓控制器從模型中獲取結果,然後將模型的返回傳遞給視圖。

+0

如果我不是打擾如何將我顯示的結果,請

​​id_absence <?PHP的foreach($數據 - >結果()爲$ R){ ?> ​​<?php echo $ r-> id_absence;?> ?? ?? –

+0

請問如何顯示$ data-> result爲$ result?我沒有得到它 –

+0

我已經更新了我的答案,以顯示在視圖中可以做什麼。 – DFriend

0

可以發送更多ifno關於您的表關係。

我只能幫你這個查詢

Controller.php這樣

function absence(){ 
    $data['result'] = $this->model->get_absence($this->session->CNE); 

    $this->load->view('Etudiants/affi', $data); 
} 

model.php

function get_absence($id){ 
    $this->db->query('SELECT * FROM absence a WHERE a.id_absence IN (SELECT ae.id_absence FROM absence_etudiant ae WHERE ae.CNE = '.$id.' ORDER BY ae.CNE LIMIT 1)'); 
    $result = $this->db->get()->result(); 

    return $result; 
} 

希望,這幫助你

+0

現在即時得到這個錯誤數據庫錯誤沒有表使用 –

+0

您可以發送屏幕截圖有關錯誤和有關您的2臺 – elddenmedio

+0

有表absence_student(id_absence,CNE)缺席(id_absence,id_seance,理由,當然)學生(CNE,姓名)我希望學生能夠通過課程檢查他的缺席並證明它的合理性 –