foreach 循环作为 Codeigniter 的类别
foreach loop as category with Codeigniter
这是我的数据库:
-id product prodcut-company category
-1 latitude dell laptop
-2 . acer desktop
-3 . azus mouse
-4 . sony keyboard
+如果我有很多按类别分隔的产品,那么我想按类别循环它我如何编码并在一页中显示它然后将其列为一个块,如笔记本电脑、台式机、...
请帮忙!
谢谢
您可以像这样在 模型 中创建一个方法-
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>';
}
}
?>
...
这是我的数据库:
-id product prodcut-company category
-1 latitude dell laptop
-2 . acer desktop
-3 . azus mouse
-4 . sony keyboard
+如果我有很多按类别分隔的产品,那么我想按类别循环它我如何编码并在一页中显示它然后将其列为一个块,如笔记本电脑、台式机、...
请帮忙! 谢谢
您可以像这样在 模型 中创建一个方法-
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>';
}
}
?>
...