在codeigniter上显示2个表

时间:2016-07-03 22:05:28

标签: php mysql codeigniter

我是codeigniter和php的新手,需要一些启发来用mvc方法显示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

任何人都可以帮我搞清楚吗?非常感谢

2 个答案:

答案 0 :(得分:1)

你只能从一个方法中返回一个东西 - 一旦你返回一些东西,代码的执行就会停止。

function m_report() {

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

    return array_merge($camera, $report);
}

现在你得到一个包含来自&#34;相机&#34;的所有结果的数组。和#34;访客&#34;。如果您喜欢关联数组,可以指定它。

function m_report() {

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

    return $data;
}

答案 1 :(得分:0)

你不能在一个方法中做出2次回报

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

我认为最好在单个函数中进行每个查询

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

}