Php 使用codeigniter按类别显示产品

Php 使用codeigniter按类别显示产品,php,codeigniter,codeigniter-3,Php,Codeigniter,Codeigniter 3,我有一个数据库,其中有两个名为categories和products的表。我想按类别展示产品 比如:- Category 1 -Product 1 -Product 2 Category 2 -Product 3 -Product 4 但我的输出是:- Category 1 -Product 1 -Product 2 -Product 3 -Pro

我有一个数据库,其中有两个名为categories和products的表。我想按类别展示产品

比如:-

Category 1
         -Product 1
         -Product 2 
Category 2
         -Product 3
         -Product 4
但我的输出是:-

Category 1
         -Product 1
         -Product 2 
         -Product 3
         -Product 4

Category 2
         -Product 1
         -Product 2 
         -Product 3
         -Product 4
控制器代码:-

public function index()
    {
$data['category'] = $this->db->distinct()->select('cat_name')->get('products')->result_array();
$this->load->view('frontend/index',$data);
    }
<section class="top_savers">
        <div class="inner_top_savers">
            <?php if(!empty($category)) { 
                foreach($category as $cat){
               $cat_name =  $cat['cat_name'];
            ?>


            <div class="top_savers_header">
                <div class="heading_wrapper">
                    <h2><?php 
                 $cat_name =  $cat['cat_name'];
            $catdata = $this->db->get_where('categories',array('categories_id'=>$cat_name))->row();
                echo  $catdata->name; ?></h2> 
                </div>
                <a href="" class="view_all">View All</a>
            </div>

             
            <div class="top_savers_wrapper">
                <!-- card-->
         <?php if(!empty($category)) { 
                
                foreach($category as $cat){
               $cat_name =  $cat['cat_name'];
 $productsdata = $this->db->get_where('products',array('cat_name'=>$cat_name))->result_array();
foreach($productsdata as $prod){

            ?>


                <div class="top_savers_card">
                    <div class="top_ooff">
                        <a href="" class="number"><?php echo $prod['discount']?>%</a>
                        <!-- <span class="dot">

                        </span> -->
                        <span class="dot1">

                        </span>
                    </div>
                    <div class="img_box">
                        <a href="product_detail.html">
                            <img src="<?php echo base_url('backend/images/products/'.$prod['image']);?>" height='100px' width='100px'>
                        </a>
                    </div>
                    <h3 class="product_title"><?php echo $prod['name']?></h3>
                    <p class="stock"><i class="fas fa-check-circle red"></i> In Stock <span class="light"><?php echo $prod['quantity']?>
                            kg</span>
                    </p>
                    <div class="price_wrapper">
                        <p class="fake"><?php echo $prod['mrp']?> <i class="fas fa-rupee-sign"></i> </p>
                        <p class="real"><?php echo $prod['price']?><i class="fas fa-rupee-sign"></i></p>
                    </div>
                    <div class="counter_control">
                        <span class="minus">-</span>
                        <input type="text" class="counter_input" value=1>

                        <span class="plus">+</span>
                    </div>

                    <a href="" class="add_btn"><img src="<?php echo base_url();?>frontend/assets/images/cart.svg" alt=""> Add to cart</a>
                </div>
                <!-- end card-->

             <?php 
                }} } 
                ?>
              </div>

              <?php 
                } } 
                ?>
        </div>
    </section>
查看:-

public function index()
    {
$data['category'] = $this->db->distinct()->select('cat_name')->get('products')->result_array();
$this->load->view('frontend/index',$data);
    }
<section class="top_savers">
        <div class="inner_top_savers">
            <?php if(!empty($category)) { 
                foreach($category as $cat){
               $cat_name =  $cat['cat_name'];
            ?>


            <div class="top_savers_header">
                <div class="heading_wrapper">
                    <h2><?php 
                 $cat_name =  $cat['cat_name'];
            $catdata = $this->db->get_where('categories',array('categories_id'=>$cat_name))->row();
                echo  $catdata->name; ?></h2> 
                </div>
                <a href="" class="view_all">View All</a>
            </div>

             
            <div class="top_savers_wrapper">
                <!-- card-->
         <?php if(!empty($category)) { 
                
                foreach($category as $cat){
               $cat_name =  $cat['cat_name'];
 $productsdata = $this->db->get_where('products',array('cat_name'=>$cat_name))->result_array();
foreach($productsdata as $prod){

            ?>


                <div class="top_savers_card">
                    <div class="top_ooff">
                        <a href="" class="number"><?php echo $prod['discount']?>%</a>
                        <!-- <span class="dot">

                        </span> -->
                        <span class="dot1">

                        </span>
                    </div>
                    <div class="img_box">
                        <a href="product_detail.html">
                            <img src="<?php echo base_url('backend/images/products/'.$prod['image']);?>" height='100px' width='100px'>
                        </a>
                    </div>
                    <h3 class="product_title"><?php echo $prod['name']?></h3>
                    <p class="stock"><i class="fas fa-check-circle red"></i> In Stock <span class="light"><?php echo $prod['quantity']?>
                            kg</span>
                    </p>
                    <div class="price_wrapper">
                        <p class="fake"><?php echo $prod['mrp']?> <i class="fas fa-rupee-sign"></i> </p>
                        <p class="real"><?php echo $prod['price']?><i class="fas fa-rupee-sign"></i></p>
                    </div>
                    <div class="counter_control">
                        <span class="minus">-</span>
                        <input type="text" class="counter_input" value=1>

                        <span class="plus">+</span>
                    </div>

                    <a href="" class="add_btn"><img src="<?php echo base_url();?>frontend/assets/images/cart.svg" alt=""> Add to cart</a>
                </div>
                <!-- end card-->

             <?php 
                }} } 
                ?>
              </div>

              <?php 
                } } 
                ?>
        </div>
    </section>

库存 公斤

- +
首先,我会避免在数据库中使用完整的cat_名称,而是使用类别的id。除此之外,您是否尝试记录每次迭代中的cat_名称,以及db查询中的$productsdata结果?您确定数据库中的数据正确吗?