【问题标题】:Splitting an Associative Array/Table拆分关联数组/表
【发布时间】:2021-02-02 15:50:21
【问题描述】:

我正在使用 PHP 输出一个基于 mysql 数据的表。我正在使用以下代码:

$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";
}

这会产生一个看起来有点像这样的表格:

--------------------------------
|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       |
--------------------------------

【问题讨论】:

  • 使用 GROUP BY Name 更新您的查询。然后比较以前的用户,如果更改,则创建一个新部分。
  • 不要那样做。只需添加一个while循环。

标签: php mysql associative-array


【解决方案1】:

这个想法是将名称与其他名称分开,仅在名称更改时显示 在设计上你必须下功夫。

$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";
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-07
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多