拆分关联 Array/Table

Splitting an Associative Array/Table

我正在使用 PHP 基于 mysql 数据输出 table。我正在使用以下代码:

$result = $db->query($sql);

 if ($result->num_rows > 0) {
 while($row = $result->fetch_assoc()) {
 echo "<tr>";
 echo "<td>", "<br>". $row["Name"]. "" .$row["message"]."".$row["timestamp"]."<br>","</td>";
 echo "</tr>";
   }
} else {
   echo "0 results";
}

生成的 table 看起来有点像这样:

--------------------------------
|Name 1   Message 1   timestamp |
--------------------------------
|Name 1   Message 2   timestamp |
--------------------------------
|Name 2   Message 1   timestamp | 
--------------------------------
|Name 3   Message 1   timestamp |
--------------------------------
|Name 3   Message 2   timestamp |
--------------------------------
|Name 3   Message 3   timestamp |
--------------------------------

我真正想要的是看起来有点像这样的东西:

Name 1
--------------------------------
|Message 1   | timestamp        |
--------------------------------
|Message 2   | timestamp        |
--------------------------------

Name 2
---------------------------------
|Message 1   |timestamp         | 
--------------------------------

Name 3
--------------------------------
|Message 1   |  timestamp       |
--------------------------------
|Message 2   |  timestamp       |
--------------------------------
|Message 3   |  timestamp       |
--------------------------------

想法是将名称从其余名称中拆分出来,仅在名称更改时显示 在设计上你必须下点功夫。

$result = $db->query($sql);

 if ($result->num_rows > 0) {
    $name = "";
     while($row = $result->fetch_assoc()) {
     
        if ($name == $row["Name"])
        {
            echo "<tr>";
            echo "<td>".$row["message"]."</td><td>".$row["timestamp"]."</td>";
            echo "</tr>";
        } else {
            echo "<tr>";
            echo "<td colspan=2>". $row["Name"]. "</td>";
            echo "</tr>";
            $name = $row["Name"];
        }
     }
} else {
   echo "0 results";
}