使用Codeigniter将foreach循环作为类别

时间:2017-05-25 06:29:49

标签: php codeigniter codeigniter-2 codeigniter-3

这是我的数据库:

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

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

请帮忙! 谢谢

1 个答案:

答案 0 :(得分: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>';

    }

}
?>

...