【问题标题】:foreach loop as category with Codeigniterforeach 循环作为 Codeigniter 的类别
【发布时间】:2017-05-25 06:29:49
【问题描述】:

这是我的数据库:

-id    product    prodcut-company  category 
-1    latitude         dell         laptop
-2       .             acer         desktop
-3       .             azus         mouse
-4       .             sony         keyboard

+如果我有许多按类别分隔的产品,那么我想按类别循环它我如何编码并将其显示在一个页面中,然后将其列为一个块,如笔记本电脑、台式机、...

请帮忙! 谢谢

【问题讨论】:

    标签: php codeigniter codeigniter-2 codeigniter-3


    【解决方案1】:

    你可以像这样在模型中创建一个方法-

    public function getData(){
        $this->db->from("product_table");
        $this->db->order_by("category");
        $q = $this->db->get();
        if($q->num_rows() > 0){
            return $q->result();
        }
        return [];
    }
    

    控制器中使用此方法从模型中获取数据并将此值传递给视图。

    $data[
       'products' => $this->your_model->getData()
    ];
    $this->load->view('your_view',$data);
    

    循环这些值并在视图中打印。

    ...
    
    <?php    
    if(!empty($products)){
    
        $count = count($products);
        $i = 0;
    
        while($i < $count){
    
            $category = $products[$i]->category;
    
            echo '<h3>Category: '.$category.'</h3>';
    
            echo '<table>
                <tr><th>Product</th><th>Company</th><th>Category</th></tr>
            ';
            for(; $i < $count && $category == $products[$i]->category ; $i++ ){
                echo '
                <tr>
                    <td>'.$products[$i]->product.'</td>
                    <td>'.$products[$i]->company.'</td>
                    <td>'.$products[$i]->category.'</td>
                </tr>
                ';
            }
            echo '</table>';
    
        }
    
    }
    ?>
    
    ...
    

    【讨论】:

    • 好的,如果我这样做,它将作为一个块循环,而不是作为一个块分隔然后我还想将标题添加为块的标签,如笔记本电脑、台式机、键盘...... .
    • 好的,我正在更新答案。
    猜你喜欢
    • 2016-02-21
    • 1970-01-01
    • 2021-11-18
    • 2019-01-14
    • 1970-01-01
    • 2019-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多