2016-04-22 7 views
0

私のコードでどうしたのですか? 学生の識別子を選択してセッションに保存した後、テーブルから対応する値を選択するためにこれをテストしました。結果から、探しているテーブルを取得したいのですが、それは動作しません。 状況がうまくいけば、私は3つのテーブルを持つことになりました。(CNE、Idabsence)、Absence(iabsence、....)と私はid_student(CNE)に対応する不在から行を取得したいと思います。外部キーコード番号を使用する結合

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'の値を得ていますか?もしあなたがそうであれば、レコードは本当に "absence"の状態で 'where( '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); 
} 

を使用します。私は関係するテーブル構造を理解しているかどうか分からない。これはあなたの質問のコードから作業している私の最高の試みです。

クエリ結果は、ビューに表示されます。ビューファイルでは、欠席ごとに1つの行を出力するテーブルを次のように作成できます。

<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> 

私は、テーブルのヘッダー行を作成する方法を示していないが、あなたは1を望んでいたならば、それは<table>タグとforeachループの間に置くことになります。

もう1つの答えがelddenmedioからMVCプリンシパルを使用してこのプロセスを構造化する方法を示していることを追加する必要があります。彼はコントローラーにモデルからの結果を取得し、モデルの戻り値をビューに渡します。

+0

データを持たないヌルです$として)結果を(R){ ?> ​​<?php echo $ r-> id_absence;?> ?? –

+0

$ data-> resultを$ resultとしてforeachして表示する方法を教えてください。私はそれを取得しない –

+0

私はビューで何ができるかを示すために私の答えを更新しました。 – DFriend

0

あなたのテーブルの関係についてもっと多くの情報を送ることができます。

私はこのクエリ

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

テーブルには欠席(ID_absence、CNE)の不在(id_absence、id_seance、justification、course)生徒さん(CNE、名前)生徒が自分の不在をコースで確認して、それを正当化できるようにします –