将 PHP mysql 数据分类显示

Displaying PHP mysql data into categories

我正在尝试按类别显示从 mysql 到 table 的数据。

例如,

技能1
-职员 1
-职员 2

技能2
-职员 1
-职员 3

我成功地显示了数据库中的所有数据,但是,对于同一技能它显示了多个 table,我无法更正它。

编辑: 感谢您的回复,我已将 table 代码移出 while 循环。但是,现在它只显示一个包含不同技能的 table 及其人员数据聚集在一起。我希望他们按技能分类,谢谢!

这是我的代码:

 $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'].' &nbsp (Skill ID:&nbsp'.$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'].' &nbsp('.$row['FK_Role_ID'].')</td>
        <td align="center">'.$row['Level'].'</td>
        </td>


    </tr>


    </tbody>';


echo '</table><br><br>';    
echo '</div>';

提前致谢

您必须检查 Skill_id 是否与上次处理的行相比发生了变化。如果出现新的 Skill_id,则结束当前 table 并开始新的

<?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();