我正在尝试按类别将来自 mysql 的数据显示到表中。
例如,
技能1
-员工1
-员工2
技能2
-员工1
-员工3
我设法显示数据库中的所有数据,但是,它显示同一技能的多个表,我无法更正它。
编辑:感谢您的回复,我已将表代码移出 while 循环。然而,现在它只显示一个包含不同技能的表及其聚集在一起的员工数据。我希望能按技能分类,谢谢!
这是我的代码:
$result = mysql_query("SELECT * FROM Acc_skills INNER JOIN Accounts ON Accounts.Role_ID = Acc_skills.FK_Role_ID INNER JOIN Skills ON Skills.Skills_id = Acc_skills.FK_Skills_ID ORDER BY Skills.Skills");
while ($row =mysql_fetch_array($result)){
echo' <b><font color="blue">'.$row['Skills'].'   (Skill ID: '.$row['Skills_id'].')</font></b>';
echo'
<style>table, th, td {border: 1px solid black;}</style>
<div class="table-responsive">
<table width="60%">
<thead>
<tr>
<th width = "20%" >Engineer assign ID</th>
<th style="text-align:center" width = "40%">Engineer</th>
<th style="text-align:center" = "40%">Skill Level</th>
<th> </th>
</tr>
</thead>';
echo '<tbody>
<tr>
<th scope="row" style="text-align:center">'.$row['Acc_skills_id'].'</th>
<td align="center">'.$row['name'].'  ('.$row['FK_Role_ID'].')</td>
<td align="center">'.$row['Level'].'</td>
</td>
</tr>
</tbody>';
echo '</table><br><br>';
echo '</div>';
提前致谢
最佳答案
您必须检查 Skill_id 与上次处理的行相比是否已更改。如果出现新的 Skill_id,则结束当前表并开始新的表。
<?php
function tableHeader()
{
echo '<div class="table-responsive">';
echo '<table width="60%">';
echo '<thead>';
echo '<tr>';
echo '<th width = "20%" >Engineer assign ID</th>';
echo '<th style="text-align:center" width = "40%">Engineer</th>';
echo '<th style="text-align:center" = "40%">Skill Level</th>';
echo '<th> </th>';
echo '</tr>';
echo '</thead>';
echo '<tbody>';
}
function tableFooter()
{
echo '</tbody>';
echo '</table>';
echo '</div>';
}
tableHeader();
$prevSkillId = null;
while ($row =mysql_fetch_array($result)){
if($row['Skill_id'] != $prevSkillId){
tableFooter();
tableHeader();
}
echo '<tr>';
echo '<td>'.$row[...].'</td>';
......
echo '</tr>';
$prevSkillId = $row['Skill_id'];
}
tableFooter();
关于php - 将 PHP mysql 数据分类显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34978930/