我的数据库同事为我构建了几个视图和SP,这样我就可以专注于html.php。
一个是在表底部显示"合计"行的查询。
我想:
- 排除我的
<tbody>
上的最后一行 - 在我的
<tfoot>
中显示这一行
既然汇总行总是显示在底部,为什么我不在<tbody>
中显示所有内容呢?因为我希望我的<tfoot>
的<td>'s
的colspan
不同,以便于演示。
我如何单独使用php来做到这一点?
我使用的是基本PDO:
foreach($table as $row) {
echo '<tr>
<td>'.$row['Item'].'</td>
<td>'.$row['Amount'].'</td>
</tr>';
}
只要最后一行与其他行不完全相同,这就应该有效。
$last_row = end($table);
echo '<tbody>';
foreach ($table as $row) {
if ($row === $last_row) continue;
echo '<tr>
<td>'.$row['Item'].'</td>
<td>'.$row['Amount'].'</td>
</tr>';
}
echo '</tbody>';
echo '<tfoot>
<tr>
<td>'.$last_row['Item'].'</td>
<td>'.$last_row['Amount'].'</td>
</tr>
</tfoot>';
如果最后一行可能不是唯一的,您可以使用密钥:
$last_key = count($table) - 1;
echo '<tbody>';
foreach ($table as $key => $row) {
if ($key === $last_key) continue;
echo '<tr>
<td>'.$row['Item'].'</td>
<td>'.$row['Amount'].'</td>
</tr>';
}
echo '</tbody>';
echo '<tfoot>
<tr>
<td>'.$table[$last_key]['Item'].'</td>
<td>'.$table[$last_key]['Amount'].'</td>
</tr>
</tfoot>';
$total = 0;
foreach($table as $row) {
$total += $row['Amount'];
echo '<tr>
<td>'.$row['Item'].'</td>
<td>'.$row['Amount'].'</td>
</tr>';
}
echo '<tr>
<td>Total:</td>
<td>'.$total.'</td>
</tr>';
如果你不打算使用thead或tfoot来设计你的内容风格,或者在某些情况下出于SEO目的,你不需要使用它们。