我是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
任何人都可以帮我搞清楚吗?非常感谢
答案 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);
}