提交mysqli_query以从购物车数据库中选择未结/未履行的订单后,结果将通过标准 WHILE 循环输出到屏幕上。
while($row = mysqli_fetch_array($oresult)) { include('orders-open.php');}
订单打开.php只是表的内部部分:
<tr style="color:#FFF;">
<td><?php echo $row['Buyer']; ?></td>
<td><?php echo $row['Cart_Date']; ?></td>
<td><?php echo $row['Item_Number']; ?></td>
<td><?php echo $row['Item_Title']; ?></td>
<td><?php echo $row['Item_FPrice']; ?></td>
<td><?php echo $row['Item_Qty']; ?></td>
</tr>
所以这是我的问题,我想在$row['Buyer']中的值发生变化时在记录之间应用一个简单的HTML" <HR>
"标签,因此通过示例:
John Doe 13-9-11 123456 项目 1 $5.99 5John Doe 13-9-11 123654 项目 2 $8.99 3约翰·多伊 13-9-9 321456 项目 3 $4.99 2(HR - 此处为水平规则标记)迈克·多伊 13-9-7 123555 项目 1 $9.99 2迈克·多伊 13-9-7 123777 项目 2 $2.99 6
在 WHILE 循环中编写条件语句以将$row[买方]结果与上一个$row["买方"]结果进行比较的最佳方法是什么?
$first_run = TRUE;
$previous_buyer = NULL;
while($row = mysqli_fetch_array($oresult)) {
if($first_run) {
$first_run = FALSE;
$previous_buyer = $row['Buyer'];
}
include('orders-open.php');
}
然后在您的包含文件中:
<?php if($previous_buyer != $row['Buyer']) {
echo '<HR width="100%">';
$previous_buyer = $row['Buyer'];
} ?>
<tr style="color:#FFF;">
<td><?php echo $row['Buyer']; ?></td>
<td><?php echo $row['Cart_Date']; ?></td>
<td><?php echo $row['Item_Number']; ?></td>
<td><?php echo $row['Item_Title']; ?></td>
<td><?php echo $row['Item_FPrice']; ?></td>
<td><?php echo $row['Item_Qty']; ?></td>
</tr>
$prev_buyer = '';
while($row = mysqli_fetch_array($oresult))
{
if($prev_buyer !== $row['Buyer'])
{
//Do Something
}
include('orders-open.php');
$prev_buyer = $row['Buyer']
}
正如埃隆上面所说 - 改变这个:
while($row = mysqli_fetch_array($oresult)) { include('orders-open.php');}
自
$old_buyer = null;
while($row = mysqli_fetch_array($oresult)) {
if ($row['Buyer'] != $old_buyer) {
echo '<hr>';
}
$old_buyer = $row['Buyer'];
include('orders-open.php');
}
你可以
这样做:
$buyer = null ; //Cache buyer in a variable, because $row is reset in the loop.
while($row = mysqli_fetch_array($oresult)) {
include('orders-open.php');
if ($buyer !== $row["Buyer"]){
echo ($buyer !== null) ? "<hr/>" : "" ;
$buyer = $row["Buyer"] ;
}
}