php - sql 使列名不重复并在同一个表中显示所有其他值
问题描述
我不希望 company_name 的列名重复,当我单击折叠引导时,它会显示与 company_name 具有相同名称的表值
<?php
$stmt=$conn->prepare("SELECT DISTINCT company_name,project,po_number FROM company");
$stmt->execute();
$result=$stmt->get_result();
?>
<div class="accordion" id="accordionExample">
<?php while($row = mysqli_fetch_array($result)){?>
<div class="card">
<div class="card-header" >
<h2 class="mb-0">
<a class="btn cat" type="button" data-toggle="collapse" href="#c<?=$row['company_name']?>" role="button" aria-expanded="false">
<?php echo $row['company_name'] ?>
</a>
</h2>
</div>
<div id="c<?=$row['company_name']?>" class="collapse">
<div class="card-body">
<div class="table-responsive ">
<table class="table table-hover table-borderless" id="table1">
<thead>
<tr class="text-truncate">
<th>Po</th>
<th>ชื่อโครงการ</th>
<th>ผู้รับผิดชอบ</th>
<th>รายละเอียด</th>
</tr>
</thead>
<tbody>
<?php $c; ?>
<tr class="<?=($c++%2==1) ? 'odd' : 'even' ?>">
<td><?php echo $row['po_number'] ?></td>
<td><?php echo $row['project'] ?></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<?php } ?>
</div>
</div>
我想要这样的折叠秀希望你能理解
https://i.stack.imgur.com/ZtwEe.png
解决方案
也许从您的结果集中创建一个分组数组结构,然后使用嵌套循环从新结构生成输出是最干净的。
建议代码:
<?php
$sql = "SELECT DISTINCT company_name, project, po_number FROM company";
$grouped = [];
foreach ($conn->query($sql) as $row) {
$grouped[$row['company_name']][] = [
'project' => $row['project'],
'po_number' => $row['po_number']
];
}
// now generate markup...
?>
<div class="accordion" id="accordionExample">
<?php foreach ($grouped as $companyName => $details) { ?>
<div class="card">
<div class="card-header">
<h2 class="mb-0">
<a class="btn cat" type="button" data-toggle="collapse"
href="#c<?=$companyName?>" role="button" aria-expanded="false"
>
<?=$companyName?>
</a>
</h2>
</div>
<div id="c<?=$companyName?>" class="collapse">
<div class="card-body">
<div class="table-responsive">
<table class="table table-hover table-borderless">
<thead>
<tr class="text-truncate">
<th>Po</th>
<th>ชื่อโครงการ</th>
<th>ผู้รับผิดชอบ</th>
<th>รายละเอียด</th>
</tr>
</thead>
<tbody>
<?php foreach ($details as $i => $detail) { ?>
<tr class="<?=$i & 1?'odd':'even'=>">
<td><?=$detail['po_number']?></td>
<td><?=$detail['project']?></td>
<td></td>
<td></td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
</div>
</div>
</div>
<?php } ?>
</div>
推荐阅读
- r - 是否可以将迷你图与 gt 一起使用?
- lua - 使用“FindFirstChild”和“WaitForChild”获得 NIL
- r - 在 R 中使用 string_detect 检测到 data.frame 列中的模式太慢
- asp.net-core - 在 ASP.NET Core 中返回 odata 4 错误
- python - 旧版本的代码出现在 docker 容器中
- discord - 嵌入命令 Discord
- php - PHP 仅根据当前一周的日期显示数据
- cursor - Oracle 19c 上的 CUSOR / SYS_REFCUSOR 问题 / BUG
- android - 如何在 ImageResource 上应用 Imageview 事件
- r - 有光泽的条件面板的问题