Php 如何使用codeigniter按类别显示产品
我有一个数据库,其中有两个名为categories和products的表。我想按类别展示产品 像 但是,我的代码返回每个产品的类别名称。像Php 如何使用codeigniter按类别显示产品,php,mysql,codeigniter,Php,Mysql,Codeigniter,我有一个数据库,其中有两个名为categories和products的表。我想按类别展示产品 像 但是,我的代码返回每个产品的类别名称。像 Category 1 -Product 1 Category 1 -Product 2 Category 2 -Product 1 Category 2 -Product 2 以下是我的代码尝试: 型号 function NestedProducts() { $sql = "S
Category 1
-Product 1
Category 1
-Product 2
Category 2
-Product 1
Category 2
-Product 2
以下是我的代码尝试:
型号
function NestedProducts()
{
$sql = "Select C.c_name, P.productname
From categories C left join products P on C.id = P.category_id
Order by C.c_name";
$query = $this->db->query($sql);
return $query->result_array();
}
function NestedProducts()
{
$sql = "SELECT C.c_name, P.productname
FROM categories C
LEFT JOIN products P on C.id = P.category_id
ORDER BY C.id";
$query = $this->db->query($sql);
return $query->result_array();
}
控制器
public function index()
{
$data['productsbycategory'] = $this->Model->NestedProducts();
$this->load->view('home', $data);
}
查看
<?php foreach($productsbycategory as $row) : ?>
<div>
<h4><?php echo $row['c_name']; ?></h4>
<div>
<h6><?php echo anchor('method/'.$id, $row['productname']); ?></h6>
</div>
</div>
<?php endforeach; ?>
您需要创建产品的子数组,并将类别作为其各自的键
function NestedProducts() {
$sql = "Select C.c_name, P.productname
From categories C left join products P on C.id = P.category_id
Order by C.c_name";
$query = $this->db->query($sql);
$products = array();
if ($query->num_rows()) {
foreach ($query->result_array() as $row) {
$products[$row['c_name']][] = $row;
}
}
return $query->result_array();
}
鉴于:
<?php foreach($productsbycategory as $categoryName => $row) : ?>
<div>
<h4><?php echo $categoryName;?></h4>
<?php foreach($row as $product) : ?>
<div><h6><?php echo anchor('method/'.$row['id'], $row['productname']); ?></h6></div>
<?php endforeach; ?>
</div>
<?php endforeach; ?>
只需使用
group_concat
和group by
子句更新查询,您将得到逗号分隔的值,只需在逗号上分解即可
$sql = "Select C.c_name, group_concat(P.productname) as productname
From categories C left join products P on C.id = P.category_id
group by C.c_name
Order by C.c_name";
注:未测试的型号应为:
型号
function NestedProducts()
{
$sql = "Select C.c_name, P.productname
From categories C left join products P on C.id = P.category_id
Order by C.c_name";
$query = $this->db->query($sql);
return $query->result_array();
}
function NestedProducts()
{
$sql = "SELECT C.c_name, P.productname
FROM categories C
LEFT JOIN products P on C.id = P.category_id
ORDER BY C.id";
$query = $this->db->query($sql);
return $query->result_array();
}
获取错误数组到字符串的转换,但是如何转换它,这是数组的数组Post yourprint\r($your\u Array)
你能解释一下如何应用它吗。分解(“,”,锚('cms/article/”.$row['a_id'],$row['heading']);但是你把你的阵列放在哪里了