Php 如何在循环末尾添加另一个表行。
我想添加一行,在循环之后,最后一行之前的行数根据用户的顺序是随机的。例如,用户订购了10,我想在列表中添加另一行。即使顺序是3,最后还是会有另一行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>
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变量保存到其他变量中没有问题!很高兴能帮忙。