如何在 (php) 中显示 SQL 查询结果的最后一行并在 ? <tfoot> <tbody>



我的数据库同事为我构建了几个视图和SP,这样我就可以专注于html.php。

一个是在表底部显示"合计"行的查询。

我想:

  1. 排除我的<tbody>上的最后一行
  2. 在我的<tfoot>中显示这一行

既然汇总行总是显示在底部,为什么我不在<tbody>中显示所有内容呢?因为我希望我的<tfoot><td>'scolspan不同,以便于演示。

我如何单独使用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目的,你不需要使用它们。

最新更新