2016-07-29 125 views
0
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(); 
} 

當我運行這個模型給出了錯誤的的foreach()提供的無效參數無效參數

這是我的看法代碼:

<?php if(!empty($most_viewed)) { ?> 
    <?php foreach($most_viewed as $row): ?> 
    <a href="<?php echo base_url('index.php/home/track');?>/<?php echo $row->id;?>" class="list-group-item"> 
    <img class="track-list-img" src="<?php echo base_url('assets/img/music');?>/<?php echo $row->id;?>.jpg"> 
    <div class="list-track-infoo"> 
    <h4 class="list-group-item-heading"><?php echo $row->title;?><span class="badge"><?php echo $row->views;?><span class="glyphicon glyphicon-eye-open" aria-hidden="true"></span></span> </h4> 
    <p class="list-group-item-text"><?php echo $row->singer;?></p> 
    </div> 
    </a> 
    <?php endforeach; ?> 
    <?php} ?> 

更新

控制器

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

我已經盡了全力來解決這個問題,但一切都是徒勞

+1

提供適當的代碼 –

+0

我已經更新了我的問題 –

+0

您返回數組使用return $結果,請再次檢查;在 –

回答

1

而不是return array();你必須返回結果集從模型文件

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 

鑑於使用它作爲

<?php foreach($most_viewed as $row): ?>// remove $row1 to $row 
+0

最好不要從if語句返回......該方法需要返回一些東西,把數組放在一個變量中並返回。 –

+0

當沒有結果表單查詢時返回false!那麼OP忘記調用模型函數'getFeaturedTracks' @ M.I。 – Saty

+0

做出這些更改後出現同樣的問題。 –

1

你需要改變兩個錯誤,

You should return the `$result` array in your model like, 

$results = $query->result(); 
return $results; 

而在變化的foreach對$row1其中$row產生錯誤。看,

<?php foreach($most_viewed as $row): ?> 
+0

返回$結果,你錯過了「s」...也實例化$結果爲空或空數組,並檢查是否爲空或空,然後在foreach中使用它 –

+0

@ M.I。謝謝,我編輯:) –

+0

做出這些更改後出現同樣的問題 –

0

功能應該喜歡這個....

function getFeaturedTracks() { 
    $results = array(); 
    $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 $results; 
}