晚上好
我试图找到一个函数,在这里我可以将动态创建的表的最后一个表行作为边框。
<?php
session_start( );
echo '<br><br><br><h1 class="HLast">Your last order</h1>';
if( isset( $_SESSION['oldSession']) === true ){
$price = 0;
$resultsetOldOrder = $dbr->query( ' SELECT sn.preis, sn.name from food_order fo, speisen_neu sn
where fo.SID = "'.$_SESSION['oldSession'].'"
and sn.Artikelnummer = fo.artikelnummer ' );
if( $resultsetOldOrder == true){
echo '<table class="LastText">';
foreach( $resultsetOldOrder as $row ){
echo '<tr><td>'.$row['name'].'</td><td>'.$row['preis'].'</td></tr>';
$price = $price + $row['preis'];
}
echo '<tr><td>Total</td><td>'.$price.'</td></tr></table>
<table class="LastButton"><tr><td><form action = "printBill.php" method = "post">
<input type = "hidden" name = "oldOderID" value ="'.$_SESSION['oldSession'].'">
<button type = "submit">Print bill</button></form></tr></table>';
}else{
echo 'You have no last order';
}
}
?>
这是我的代码。工作正常。 在普通表中,我只是尝试给最后一个td一个类,并在其周围设置边框。但这在这里是不可能的,我也无法在网络上找到任何东西。
希望您能帮助我,谢谢。
答案 0 :(得分:1)
嗯,虽然有一种更好的方法使用CSS执行此操作,但无需对代码进行太多更改即可执行此操作,但是您可以计算$resultsetOldOrder
中的总行数,然后在循环中检查当前行是最后一个。
if( $resultsetOldOrder == true){
$last_index = count($resultsetOldOrder) - 1;
echo '<table class="LastText">';
foreach( $resultsetOldOrder as $index => $row ){
if($index == $last_index) {
//This is the last row, do whatever you want
}
echo '<tr><td>'.$row['name'].'</td><td>'.$row['preis'].'</td></tr>';
$price = $price + $row['preis'];
}
echo '<tr><td>Total</td><td>'.$price.'</td></tr></table>
<table class="LastButton"><tr><td><form action = "printBill.php" method = "post">
<input type = "hidden" name = "oldOderID" value ="'.$_SESSION['oldSession'].'">
<button type = "submit">Print bill</button></form></tr></table>';
}else{
echo 'You have no last order';
}
当然,这是假设$resultsetOldOrder
数组的索引从0到x。如果不是,则可以在循环之前设置$i = 0
,然后在循环内部检查$i == $last_index
,然后执行$i++
。
我希望这会有所帮助。
答案 1 :(得分:0)
使用CSS,您可以选择类型的最后一个元素。
看看this。
因此,就您而言,
tr:last-of-type {
//your styles here
}