2017-12-08 8 views
1

によって別のテーブルから取得した行数をIは、カテゴリコントローラ有しつつ - foreachの使用率ビューイム印刷結果でCodeIgniterでは、 - ビュー内のforeach-INGのID

public function index() 
    { 

     $query = $this->db->query("SELECT * FROM categories ORDER BY priority"); 
     $this->_viewdata['categories'] = $query->result(); 
     //-- I will use model for mysql queries! 

     $this->load->view('admin/categories', $this->_viewdata); 
    } 

を:

<?php 
    foreach ($categories as $category) { 
?> 
     Name: <?=$category->name;?> // and etc... 
     Subcategories: // <- I want to get subcats count for every category by its id (where catid='$category->id') like this 
    <?php 
    } 
    ?> 

を私は別のものを持っていますテーブルには "サブカテゴリ"と呼ばれ、 "catid"カラムがあります。カテゴリごとにすべてのサブカテゴリを取得し、ビュー内に表示したいと考えています。これどうやってするの?あなたはCodeIgniterのを使用しているので、あなたも使用することができますか

SELECT * FROM categories c JOIN subcategories s ON s.catid = c.id ORDER BY c.priority 

+1

SQL文にサブカテゴリを結合する必要があります。 'SELECT * FROMカテゴリから継承するサブカテゴリをオンにするs.catid = c.id ORDER BY c.priority' –

+0

このクエリを使用するとサブカット - >カウントとカテゴリ - >結果を個別に取得できますか? – NurlanXp

+1

@NurlanXp、あなたは自分自身に尋ねるべきこと "ああ、私は何をしていますか?私は知っています、私は$ this - > _ viewdata ['categories']でvar_dumpを行い、また、phpmyadminでSQLを実行してそこから結果を調べることもできます... – TimBrownlaw

答えて

0

私はどうなるのかコメントで言ったようには次のようにテーブルに参加している

$this->db->join('subcategories', 'subcategories.catid = categories.id'); 

は、その後、私は節約になりますサブキャットを別の配列にコピーし、それらを繰り返します。

<?php 
    $newCategories; 
    foreach ($categories as $category) { 
     if($category->name != $cat){ 
     //New category 
     $cat = $category->name; 
     $newCategories[$cat][] = $category; 
     } 
     else{ 
     $newCategories[$cat][] = $category; 
     } 
    } 
    foreach($newCategories as $name => $cat){ 
?> 
     Name: <?php echo $name ?>. 
     Subcategories: <?php 
         foreach($cat as $sub){ 
         echo $sub->..; //Fill in your template 
         } 
         ?> 

私はそれがより良くできると確信しています。

関連する問題