MySql查询的组输出

时间:2018-07-10 09:49:16

标签: php mysql

我有以下PHP / MySql:

$sql = "SELECT * from tblDigest";
$result = $conn->query($sql);

if ($result->num_rows > 0) {

  echo "<table><tr>
    <th>Diagram</th>
    <th>Headcode</th>
    <th>Date</th>
    <th>Dep Time</th>
    <th>Origin</th>
    <th>Destination</th>
    <th>Arr Time</th>
    <th>Booked Traction</th>
    <th>Actual Traction</th>
    <th>Type</th>
    </tr>";

  // output data of each row
  while($row = $result->fetch_assoc()) {

    echo "<tr>";
    echo "<td>" . $row["diagram"] . "</td>";
    echo "<td>" . $row["headcode"] . "</td>";
    echo "<td>" . $row["depDate"] . "</td>";
    echo "<td>" . $row["depTime"] . "</td>";
    echo "<td>" . $row["origin"] . "</td>";
    echo "<td>" . $row["destination"] . "</td>";
    echo "<td>" . $row["arrTime"] . "</td>";
    echo "<td>" . $row["bookedTraction"] . "</td>";
    echo "<td>" . $row["actualTraction"] . "</td>";
    echo "<td>" . $row["type"] . "</td>";

    echo "</tr>";

  }

  echo "</table>";
}

我想按“图”对结果进行分组,以便将它们显示为手风琴。有没有简单的方法可以做到这一点?

如果失败,我如何获取表第一行的值(因此我可以拥有一个$diagNo变量,并将其与$row["diagram"]进行比较,以了解它何时已更改。

1 个答案:

答案 0 :(得分:0)

将结果按diagram排序,并观察其值更改的时间:

$sql = "SELECT * from tblDigest ORDER BY diagram";
$result = $conn->query($sql);

if ($result->num_rows > 0) {

  echo "<table><tr>
    <th>Diagram</th>
    <th>Headcode</th>
    <th>Date</th>
    <th>Dep Time</th>
    <th>Origin</th>
    <th>Destination</th>
    <th>Arr Time</th>
    <th>Booked Traction</th>
    <th>Actual Traction</th>
    <th>Type</th>
    </tr>";

  // output data of each row
  $oldDiagram = '';
  while($row = $result->fetch_assoc()) {

    if($oldDiagram == '')
    {
      // this is the first diagram - create the first accordeon
      $oldDiagram = $row['diagram'];
    }
    elseif($oldDiagram != $row['diagram'])
    {
      // a new group starts right now - create new accordeon
      $oldDiagram = $row['diagram'];
    }
    echo "<tr>";
    echo "<td>" . $row["diagram"] . "</td>";
    echo "<td>" . $row["headcode"] . "</td>";
    echo "<td>" . $row["depDate"] . "</td>";
    echo "<td>" . $row["depTime"] . "</td>";
    echo "<td>" . $row["origin"] . "</td>";
    echo "<td>" . $row["destination"] . "</td>";
    echo "<td>" . $row["arrTime"] . "</td>";
    echo "<td>" . $row["bookedTraction"] . "</td>";
    echo "<td>" . $row["actualTraction"] . "</td>";
    echo "<td>" . $row["type"] . "</td>";

    echo "</tr>";

  }

  echo "</table>";
}