我的代码只是查询数据库并输出到html表:
<?php
include("incl\dbcon.php");
$sql = "SELECT * FROM attendanceRecord";
$result = $db_con->query($sql);
echo "<table>
<tr>
<th>Date</th>
<th>Building Name</th>
<th>Room Name</th>
<th>Student</th>
<th>Time</th>
</tr>";
while($row_result = $result->fetch_assoc()){
echo "<tr>";
echo "<td>" . $row_result['rDate'] . "</td>";
echo "<td>" . $row_result['rBuildingName'] . "</td>";
echo "<td>" . $row_result['rRoomName'] . "</td>";
echo "<td>" . $row_result['rStudent'] . "</td>";
echo "<td>" . $row_result['rTime'] . "</td>";
echo "</tr>";
}
$db_con->close();
echo "</table>";
?>
结果如下:
Date Building Name Room Name Student Time
2018-07-12 Building A 1A Sam 08:32:33
2018-07-12 Building A 1A David 08:54:21
2018-07-12 Building A 1A Dragon 08:50:10
2018-07-12 Building A 1B John 08:43:11
2018-07-12 Building A 1B Coco 08:51:39
2018-07-12 Building B 3A Mary 08:21:23
2018-07-12 Building B 3A Martin 08:46:57
2018-07-12 Building B 4B Ray 08:26:47
我怎样才能不显示或清空一行中的重复字段,并使表如下所示?
Date Building Name Room Name Student Time
2018-07-12 Building A 1A Sam 08:32:33
David 08:54:21
Dragon 08:50:10
1B John 08:43:11
Coco 08:51:39
Building B 3A Mary 08:21:23
Martin 08:46:57
4B Ray 08:26:47
我应该去哪里?从sql查询(不知道查询时是否有空或空重复字段的函数)或php数组(如果重复则打印空然后移动指针?),请帮助,提前感谢!
2条答案
按热度按时间tgabmvqs1#
假设行总是以正确的顺序出现(可以使用order by来确保!)然后在php中,保留一个变量,该变量包含前一行的日期值。如果它与当前行上的日期匹配,则不要在td中打印该值。如果没有,那就打印出来,因为它一定是新的。建筑物名称和房间名称的方法相同,但在当前日期(和建筑物)的上下文中:
p、 我绝不会尝试在sql中这样做,因为它实际上是特定于这个特定上下文中数据的表示,而不是数据本身的性质。在php中也简单得多。
hyrbngr72#
在php中,您可以这样做