我有一个产品表,其中插入了所有新产品。此产品表包含产品名称product_name
以及产品所属的部门department
。
我正在尝试遍历我的产品,以生成包含部门标题和所有产品(作为按钮)的标签,这些标签与每个部门相关联,作为标签内容。
到目前为止,我只是设法将部门显示为标题标题以及与每个部门相关联的第一批产品。
非常感谢任何帮助或推动正确的方向。
$i = 0;
$j = 0;
$deptData = array();
$query = "SELECT `product_name`, `department`
FROM `products`
WHERE `status` = 'Active'
GROUP BY CONCAT(`department`, `product_name`)";
$stmt = $mysqli->prepare($query);
$stmt->execute();
$stmt->bind_result($product_name, $department);
$stmt->store_result();
while($stmt->fetch()) {
$deptData[$department][$product_name]['product_name'] = $product_name;
}
$stmt->close();
<div class="container">
<div class="row">
<div class="col-sm-12">
<ul class="nav nav-tabs">
<?php
$tabTitle = "";
$tabTitleClass = "";
foreach($deptData as $department => $product_name) {
if($i == 0) {
$tabTitleClass = "active";
} else {
$tabTitleClass = "";
}
/* Build our tab pane title */
$tabTitle = '<li class="'.$tabTitleClass.'"><a href="#'.$department.'" data-toggle="tab">'.$department.'</a></li>';
echo $tabTitle;
$i++;
} ?>
</ul>
<div class="tab-content">
<?php
$tabContent = "";
$tabContentClass = "";
foreach($deptData as $department => $product_in_dept) {
foreach($product_in_dept as $product => $value) {
if($j == 0) {
$tabContentClass = "tab-pane fade in active";
} else {
$tabContentClass = "tab-pane fade";
}
/* Build our tab content */
$tabContent = ' <div id="'.$department.'" class="'.$tabContentClass.'">
<button class="btn btn-default">'.$value['product_name'].'</button>
</div>';
echo $tabContent;
$j++;
}
}
?>
</div>
</div>
</div>
</div>
答案 0 :(得分:0)
经过多次挖掘后发现问题。对于任何可能遇到这种情况并发现它有用的人;答案是,只有第一个结果被应用于&#39;活跃于&#39; class(从结果的第一个循环开始),另一个按钮因此被隐藏。