2016-07-03 11 views
1

imはcodeigniterとphpの新機能ですが、mvcメソッドを使って2つのテーブルを表示するにはいくつかのenlightmentが必要です。 1ページ(カメラとビジターテーブル)に2つのテーブルを表示するだけです。ここに私のコードcodeigniterの2つのテーブルを表示

モデルである:

function m_report() { 
     $camera = $this->db->get('camera'); 
     return $camera->result(); 
     $report = $this->db->get('visitor'); 
     return $report->result(); 
    } 

ビュー:

<?php foreach($data1 as $report){ ?> 
       <tr>  
        <td><?php echo $report->Country; ?></td> 
        <td><?php echo $report->Days; ?></td> 
       </tr> 
<?php } ?> 

<?php foreach($data_camera as $camera){ ?> 
        <tr>  
         <td><?php echo $camera->cameratype; ?></td> 
        </tr> 
        <?php } ?> 

コントローラー:

function report(){ 
     $data['data_camera']=$this->m_data->m_report(); 
     $data1['data1']=$this->m_data->m_report(); 
     $this->load->view('v_report',$data,$data1); 


} 

問題は、私はカメラのテーブルを表示することができますが、訪問者は、エラーメッセージが表示されました、次のとおりです。未定義変数:data1

誰かが私にそれを理解するのを助けることができますか?多くの方に感謝します

答えて

1

メソッドから1つだけ返すことができます - 何かを返すと、コードの実行が停止します。

function m_report() { 

    $camera = $this->db->get('camera')->result(); 
    $report = $this->db->get('visitor')->result(); 

    return array_merge($camera, $report); 
} 

ここで、「カメラ」と「訪問者」の両方からすべての結果を含む配列が得られます。連想配列を使用したい場合は、それを指定することができます。単一の関数で、私は各クエリを作る方が良いと思いますが、一つの方法で

function m_report() { 
    $camera = $this->db->get('camera'); 
    return $camera->result(); 
    $report = $this->db->get('visitor'); 
    return $report->result(); 
} 

を2つのリターンを作ることができない

function m_report() { 

    $data['camera'] = $this->db->get('camera')->result(); 
    $data['visitor'] = $this->db->get('visitor')->result(); 

    return $data; 
} 
+0

ありがとうMarcusあなたの助けを借りて、あなたのコードで私のモデルを変更しようとしましたが、問題は同じです、訪問者のテーブルが表示されません、 – anulogi

+0

@anulogiビューでそのデータを解析して使用する方法も変更しましたか?その場合は、現在のコードを表示するように更新してください。 – CmdrSharp

+0

いいえ、私は変更ができませんでした。私はCIを初めてお世話しました。ビュー内のデータを解析する方法を教えてください。 – anulogi

0

function m_camera_report() { 
    $camera = $this->db->get('camera'); 
    return $camera->result(); 
} 

function m_visitor_report() { 
    $report = $this->db->get('visitor'); 
    return $report->result(); 
} 

コントローラ

で個別にそれらを呼び出します
function report(){ 
    $data['data_camera']=$this->m_data->m_camera_report(); 
    $data['data_visitor']=$this->m_data->m_visitor_report(); 
    $data1['data1']=$this->m_data->m_report(); 
    $this->load->view('v_report',$data,$data1); 

}

関連する問題