2013-01-11 56 views
3

在codeigniter 2.1中,我试图按类别显示频道。所以如果我有一个名为Film的类别,我应该看到电影中的频道列表。我尝试了一个嵌套的foreach循环来实现这一点,但似乎无法让它工作。* foreach内部foreach codeigniter 2?

我的表结构是这样的,但更复杂:

Database structure

  • 我的模型:

    <?php 
    
    class Pages_model extends CI_Model { 
    
    
    function get_channels_by_categ_tv() 
    { 
    
        $this->db->select('categories.category_name, channels.channel_name'); 
        $this->db->from('type_categ'); 
        $this->db->join('categories', 'categories.category_id = type_categ.category_id'); 
        $this->db->join('channels', 'channels.channel_id = type_categ.channel_id'); 
        $this->db->order_by('categories.category_id'); 
    //$this->db->group_by(array('categories.category_id')); 
        $query = $this->db->get(); 
    
        if($query->num_rows() == 0) 
        { 
        #no channels 
        return false; 
        } 
    
        return $query->result_array(); 
    } 
    
    } 
    
  • 视图

      <ul class="slides"> 
          <li> 
           <?php foreach ($category_chaneels as $category): ?> 
           <div class="programe-tv_link"> 
            <p><?=$category['category_name'];?></p> 
             <dd> <a href=""> >> <?=$category['channel_name'];?></a></dd> 
           </div> 
           <?php endforeach; ?>     
          </li> 
          </ul> 
    
  • 控制器(页数):

    public function index() 
    { 
    
    $data['category_chaneels'] = $this->pages_model->get_channels_by_categ_tv(); 
    
    $this->template->page_view($data); 
    } 
    

我atached图像1和图像2,我需要导致像图像2而不是1

PS。一个频道可以有很多类别。

enter image description here 你能帮我吗? THX

回答

1

我最后的代码是这样的。 Maby sombody需要这个。

<div id="programe-tv-slide" class="flexslider"> 
     <strong>Programe TV</strong> 
     <div class="redLine"></div> 

     <?php $cat_cnl = array(); 
       $list = array(); 
       $i=1; 
       foreach ($category_chaneels as $option) { 
        $catname = $option['category_name']; 
        $chlname = $option['channel_name']; 

        $cat_cnl[$catname][$i] = $chlname; 
        $list[$i] = $catname; 
       $i++; 
       }; 
     ?> 
     <?php 
      $rows = array_chunk($cat_cnl, 4, TRUE); 
      foreach ($rows as $row) { //var_dump($rows); 
     ?> 

      <ul class="slides">  
      <?php 
       echo ('<li>'); 
       foreach ($row as $category => $channels) { 
        echo '<div class="programe-tv_link">'; 
        echo '<p>' . $category . '</p>'; 
         foreach ($channels as $channel) { 
           echo '<dd><a href="">' . $channel . '</a></dd> '; 
         }; 
        echo '</div>'; 
        };  
       echo ('</li>'); 
      ?> 
      </ul> 
      <?php }; ?> 
    </div> 
2

在您看来,尝试

<?php $cat_shown = ''; ?> 
<div class="programe-tv_link"> 
    <?php foreach ($category_chaneels as $category): ?>  
     <?php 
     if ($cat_shown != $category['category_name']) { 
      echo '<p>' . $category['category_name'] . '</p>'; 
      $cat_shown = $category['category_name']; 
     } 
     ?> 
     <dd><a href=""> >> <?=$category['channel_name'];?></a></dd> 
    <?php endforeach; ?> 
</div> 
+0

嗨stealthyninja,我该如何查看diferents DIV和限制1格 - > 3里, –