Php 如何在循环末尾添加另一个表行。

Php 如何在循环末尾添加另一个表行。,php,html,Php,Html,我想添加一行,在循环之后,最后一行之前的行数根据用户的顺序是随机的。例如,用户订购了10,我想在列表中添加另一行。即使顺序是3,最后还是会有另一行 while ($row=mysql_fetch_array($result)){ echo "<tr>"; echo "<td>".$row['prod_name']."</td>"; echo "<td>".$row['quantity']."</td>"; echo "<td>

我想添加一行,在循环之后,最后一行之前的行数根据用户的顺序是随机的。例如,用户订购了10,我想在列表中添加另一行。即使顺序是3,最后还是会有另一行

while ($row=mysql_fetch_array($result)){
echo "<tr>";
echo "<td>".$row['prod_name']."</td>";
echo "<td>".$row['quantity']."</td>";
echo "<td>₱".number_format(($row['price']*$row['quantity']),2)."</td>";
echo "</tr>";
        if($row['carrier']=="LBC"){
        echo "<tr>";
        echo "<td>Shippment Option Chosen: ".$row['carrier']."</td>";
        echo "<td></td>";
        echo "<td>₱250.00</td>";
        echo "</tr>";
            }
    }
echo "</table>";
?>

在这里,我让它创建另一行,但它在每行之后创建一行,我只需要在表的末尾添加一行。谢谢:

您应该在

echo "</table>";
行,但在它前面的结束括号之后。最后一个结束括号是循环结束的地方。应该是这样的:

while ($row=mysql_fetch_array($result)){
echo "<tr>";
echo "<td>".$row['prod_name']."</td>";
echo "<td>".$row['quantity']."</td>";
echo "<td>₱".number_format(($row['price']*$row['quantity']),2)."</td>";
echo "</tr>";
        if($row['carrier']=="LBC"){
        echo "<tr>";
        echo "<td>Shippment Option Chosen: ".$row['carrier']."</td>";
        echo "<td></td>";
        echo "<td>₱250.00</td>";
        echo "</tr>";
            }
    }
  echo "<tr>";
  echo "<td>LAST LINE...</td>";
  echo "<td></td>";
  echo "<td></td>";
  echo "</tr>";
  echo "</table>";
?>

您可以使用mysqli_num_rows获取行数。然后可以在while循环中添加一个计数器。当计数器=mysqli\u num\u rows时,您可以在最后回显您想要回显的行

例如:

$totalrows=mysqli_num_rows($result);
$counter=1;
while ($row=mysql_fetch_array($result)){
    //echo the row data
if($counter==$totalrows)
    {
    //echo the extra row which you wanted.
    }
}
echo "</table>";

嗯,为什么不添加一个新的查询呢?我修正了你的密码。并添加了这些

$qryx = "SELECT DISTINCT customers.serial,customers.name,customers.payment,customers.carrier,customers.tracking_no, orders.date, order_detail.productid, order_detail.quantity, order_detail.price, order_detail.orderid, inventory.prod_name 
        FROM customers 
        RIGHT JOIN orders on customers.serial=orders.serial 
        RIGHT JOIN order_detail on orders.serial=order_detail.orderid 
        LEFT JOIN inventory on order_detail.productid=inventory.prod_id
        where customers.email='{$_SESSION['email']}' 
        AND order_detail.orderid='{$_REQUEST['orderid']}'
        GROUP BY customers.carrier";

$resulty = @mysql_query($qryx);
while ($rowz=mysql_fetch_array($resulty)){

    if($rowz['carrier']=="LBC"){
        echo "<tr>";
        echo "<td>Shippment Option Chosen: ".$rowz['carrier']."</td>";
        echo "<td></td>";
        echo "<td>₱250.00</td>";
        echo "</tr>";
            }
        }

我更改了qry、结果和行的名称。并添加了DISTINCT和GROUP BY以消除冗余。

但我使用的是$row['carrier'],它将在循环中调用。如何修复?您的循环正在通过sql结果运行。您需要在最后一列中显示什么类型的数据?条件语句,如果$row['carrier']来自数据库,如果carrier是LBC,则它将显示另一行。根据您的代码,$row变量仅在循环中可用。我不认为可以在循环外继续使用$row,除非在循环内将最后一个$row变量保存到其他变量中没有问题!很高兴能帮忙。