Php 为codeigniter模型中的foreach()提供的参数无效
当我运行这个模型时,它给出了一个错误,即为foreach()提供的参数无效 这是我的视图代码:Php 为codeigniter模型中的foreach()提供的参数无效,php,database,codeigniter,Php,Database,Codeigniter,当我运行这个模型时,它给出了一个错误,即为foreach()提供的参数无效 这是我的视图代码: function mostViewedTracks() { $this->load->database(); $this->db->select("*"); $this->db->from("file"); $this->db->order_by("views", "desc"); $this-&g
function mostViewedTracks() {
$this->load->database();
$this->db->select("*");
$this->db->from("file");
$this->db->order_by("views", "desc");
$this->db->limit(8);
$query = $this->db->get();
if($query->num_rows() > 0)
{
$results = $query->result();
}
return array();
}
我已经尽力解决了这个问题,但都是徒劳的,而不是
返回数组()代码>必须从模型文件返回结果集
function track() {
$id = $this->uri->segment(3);
$data1['track'] = $this->view_models->track($id);
$data1['most_viewed'] = $this->view_models->mostViewedTracks();
$this->load->view('includes/header');
$this->load->view('track', $data1);
$this->load->view('includes/footer');
}
在控制器中,您必须调用模型函数作为
if($query->num_rows() > 0)
{
return $query->result();// return result set
}else{
return FALSE;//
}
鉴于此,请将其用作
$data1['most_viewed'] = $this->view_models->getFeaturedTracks();// change mostViewedTracks to getFeaturedTracks
//删除$row1到$row
而不是返回数组()代码>必须从模型文件返回结果集
function track() {
$id = $this->uri->segment(3);
$data1['track'] = $this->view_models->track($id);
$data1['most_viewed'] = $this->view_models->mostViewedTracks();
$this->load->view('includes/header');
$this->load->view('track', $data1);
$this->load->view('includes/footer');
}
在控制器中,您必须调用模型函数作为
if($query->num_rows() > 0)
{
return $query->result();// return result set
}else{
return FALSE;//
}
鉴于此,请将其用作
$data1['most_viewed'] = $this->view_models->getFeaturedTracks();// change mostViewedTracks to getFeaturedTracks
//删除$row1到$row
您需要更改两个错误
<?php foreach($most_viewed as $row): ?>// remove $row1 to $row
在foreach中,将$row1
更改为$row
,从而产生错误。看,
You should return the `$result` array in your model like,
$results = $query->result();
return $results;
您需要更改两个错误
<?php foreach($most_viewed as $row): ?>// remove $row1 to $row
在foreach中,将$row1
更改为$row
,从而产生错误。看,
You should return the `$result` array in your model like,
$results = $query->result();
return $results;
函数应该是这样的
<?php foreach($most_viewed as $row): ?>
函数应该是这样的
<?php foreach($most_viewed as $row): ?>
提供正确的代码请再次检查我已更新我的问题您返回的数组使用return$results;在model中,而不是返回数组()代码>使用返回$query->result()代码>查看次数最多的$的值是多少?提供正确的代码请再次检查我已更新我的问题您的返回数组使用返回$结果;在model中,而不是返回数组()代码>使用返回$query->result()代码>查看最多的$results的值是多少?返回$results,你错过了“s”。。。还将$results实例化为null或空数组,并在foreachy中使用它之前检查它是否为null或空。在进行这些更改后,请检查$most_viewsed arrayreturn$results的值,如果您错过了“s”。。。另外,将$results实例化为null或空数组,并在foreach中使用它之前检查它是否为null或空。在进行这些更改后,出现相同的问题请检查$most_-view数组的值。最好不要从if语句返回。。。该方法应该返回一些东西,将数组放入变量中并返回该值。如果没有结果表单查询,则返回false!!好吧,请忘记调用模型函数getFeaturedTracks
@M.I。在进行这些更改后,出现了相同的问题。您是否更改了$data1['most_views']=$this->view_models->getFeaturedTracks();//将控制器文件中的mostViewedTracks更改为getFeaturedTracks
@AMJADALIT最好不要从if语句返回。。。该方法应该返回一些东西,将数组放入变量中并返回该值。如果没有结果表单查询,则返回false!!好吧,请忘记调用模型函数getFeaturedTracks
@M.I。在进行这些更改后,出现了相同的问题。您是否更改了$data1['most_views']=$this->view_models->getFeaturedTracks();//将控制器文件中的mostViewedTracks更改为getFeaturedTracks
@阿姆贾达利