php - 如何基于同一列单元格输出一个组,同时将其循环到 html 中?
问题描述
我想在循环数据库表中的所有行时创建组。
示例数据库:
id | sex | name | age
1 | male | kevin | 20
2 | male | bob | 24
3 | female | jenny | 24
4 | female | bob | 20
5 | no | gaben | 13
我想按名称对条目进行分组。我正在寻找的输出是这样的:
应该输出:
<div id="bob">
<a>bob male 24</a>
<a>bob female 20</a>
</div>
<div id="kevin">
<a>kevin male 20</a>
</div>
<div id="gaben">
<a>gaben no 13</a>
</div>
<div id="jenny">
<a>jenny female 24</a>
</div>
我在彼此内部制作了两个while循环。它只输出<div>
一对一name
。每个 div 都应该为每个唯一的name
. 因此,当某人具有相同的 时name
,应将它们放在同一个<div id="name">
元素/组中;
我创建了一个names[]
数组,所以我可以检查名称是否在名称数组中。如果没有,它应该创建一个<div id="name">
元素。<div id="name">
创建元素/组后,内部循环应该循环该 div 元素内部的所有内容$name = $row['name']
。如果循环完成,则应关闭 div</div>
并将名称添加到$names[] = $name
数组中。所以它不会再创造同样的东西div
。然后它应该继续使用下一个名称,但不知何故它没有这样做。
<?php
if($resultCheck > 0){
$names = [];
while($row = $result->fetch_assoc()) {
$name = $row['name'];
if(!in_array($fieldset, $fieldsets)){
echo '<div name="'.$hersteller.'">';
}
while($names = $result->fetch_assoc()){
echo '<a>'.$row['name'].' '.$row['sex'].' '.$row['age'].'</a>';
}
}
if(!in_array($name, $names)){
echo '</div>';
}
$names[] = $name;
}
?>
解决方案
GROUP BY name
除非您在查询中使用,否则您的解决方案将不起作用。因此,如果您不使用,GROUP BY
那么解决方案将是这样的:
<?php
if($resultCheck > 0){
$names = array();
while($row = $result->fetch_assoc()) {
$names[$row['name']][] = array($row['name'], $row['sex'], $row['age']);
}
foreach($names as $name => $details){
echo '<div name="'.$name.'">';
foreach($details as $d){
echo '<a>'.$d['name'].' '.$d['sex'].' '.$d['age'].'</a>';
}
echo '</div>';
}
}
?>
如果您GROUP BY name
在查询中使用,那么您的结果集将按名称分组,您可以使用如下解决方案:
<?php
if($resultCheck > 0){
$names = array();
while($row = $result->fetch_assoc()) {
if(!in_array($row['name'], $names)){
if(empty($names)){
echo '<div name="'.$name.'">';
}else{
echo '</div'>;
echo '<div name="'.$name.'">';
}
echo '<a>'.$row['name'].' '.$row['sex'].' '.$row['age'].'</a>';
$names = $row['name'];
}else{
echo '<a>'.$row['name'].' '.$row['sex'].' '.$row['age'].'</a>';
}
}
echo '</div>';
}
?>
推荐阅读
- wordpress - Woocommerce 管理员如何搜索不是帖子元键的自定义列
- javascript - 根据媒体查询更改 Swiper 分页
- amazon-s3 - 气流最佳实践:s3_to_sftp_operator 而不是运行 aws cli?
- django - 数据未保存在数据库中
- reactjs - 将 prevState 参数与 setState 中的 map 函数反应
- x86 - 使用 lipo 创建的 arm64/x86_64 通用二进制文件缺少部署目标
- sql - 如何在 SQL 中将 JSON 文件拆分为多行
- vue.js - 输入搜索字段后,获取新结果(nuxt,vuex)
- ios - 在 UITableViewCell 中显示和隐藏 UIImageView
- java - 我可以使用@GraphQLQuery 解析模型中没有的字段吗