0

在提交 mysqli_query 以从购物车数据库中选择未完成/未完成的订单后,结果将通过标准 WHILE LOOP 输出到屏幕。

while($row = mysqli_fetch_array($oresult)) { include('orders-open.php');}

orders-open.php 只是 TABLE 的内部部分:

 <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>

所以这是我的问题,我想<HR>在 $row['Buyer'] 中的值更改的记录之间应用一个简单的 HTML“”标签,例如:

John Doe 2013 年 9 月 11 日 123456 项目 1 5.99 美元 5
John Doe 2013 年 9 月 11 日 123654 项目 2 8.99 美元 3
John Doe 2013 年 9 月 9 日 321456 项目 3 4.99 美元 2

(HR - 这里的水平规则标签)

Mike Doe 2013 年 9 月 7 日 123555 项目 1 9.99 美元 2
Mike Doe 2013 年 9 月 7 日 123777 项目 2 2.99 美元 6

在 WHILE LOOP 中编写条件语句以将 $row[Buyer'] 结果与之前的 $row['Buyer'] 结果进行比较的最佳方法是什么?

4

4 回答 4

1
$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>
于 2013-09-11T14:08:14.387 回答
0

你可以这样做:

$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"] ;
   }
}
于 2013-09-11T14:00:40.350 回答
0
$prev_buyer = '';
while($row = mysqli_fetch_array($oresult))
{
  if($prev_buyer !== $row['Buyer'])
  {
    //Do Something
  }

  include('orders-open.php');

  $prev_buyer = $row['Buyer']
}
于 2013-09-11T14:02:17.027 回答
0

正如埃隆上面所说 - 改变这个:

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');
}
于 2013-09-11T14:03:57.053 回答