我有以下代码来生成带有下达订单的HTML表。
// Select data FROM ORDER & ORDERLINE
$id = $value->ID;
$datenow = date("Y-m-d");
$temp = 0;
$stmt2 = $mysql->prepare("SELECT salesorder.order_id AS soid, salesorder.delivery_date AS sdd, orderline.qty AS olq, food.food_type AS fft
FROM orderline
INNER JOIN salesorder ON salesorder.order_id = orderline.order_id
INNER JOIN food ON food.food_id = orderline.food_id
WHERE salesorder.client_id=? AND orderline.qty!=?
ORDER BY sdd");
$stmt2->bind_param('ss', $id, $temp);
$stmt2->execute();
$result2 = $stmt2->get_result();
// determen if there are orders to display
if (mysqli_num_rows($result2) > 0) {
while ($value2 = $result2->fetch_object()) {
$results[] = $value2;
}
?>
<table class="center table">
<thead>
<tr>
<th>Order Number</th>
<th>Delivery Date</th>
<th>QTY</th>
<th>Food Type</th>
</tr>
</thead>
<tbody>
<b>Delivered orders :</b> (and orders delivered today...)
<?php foreach ( $results as $result ) : ?>
<?php if (($result->sdd)<=$datenow) { ?>
<td><?php echo ($result->soid); ?></td>
<td><?php echo ($result->sdd); ?></td>
<td><?php echo ($result->olq); ?></td>
<td><?php echo ($result->fft); ?></td>
</tr>
<?php } ?>
<?php endforeach;?>
</tbody>
</table>
问题在于“交货日期”和“订单号” ALSO的显示次数与数量和食品类型一样多。我知道这与索引有关,但是无论如何,我都找不到正确的语法或方法。有任何想法吗? 我已将数据表添加为图像。请让我知道...
答案 0 :(得分:1)
foreach
内打开<tr>
标签mysqli_fetch_assoc
循环返回数组,然后为什么要存储到$results[]
数组中,答案 1 :(得分:0)
根据您对Eibs另一个答案的评论,请检查以下内容是否满足您的需求。首先,当您循环结果时,我们将创建一个按订单号和日期分组的关联数组,并将每个项目添加到items数组。然后,当创建表时,我们循环结果数组,然后是项数组。我仅使用单独的行是因为您具有标题行,但是,使用这种相同的方法,您可以设计表输出的多种不同方式。
update