【发布时间】:2019-02-24 10:37:42
【问题描述】:
我正在尝试循环这些行以回显我的结果。所以我加入我的 2 个数据库表以获得一些结果,特别是来自 order 表的型号和型号名称,而其他来自 order_history 表。我试图循环这些行,以便它呼应在什么时间和由谁交付的货物,以及由谁批准。但是,我似乎得到了一个无限循环的结果,我可以就如何循环结果提供一些建议。这些是我正在使用的表格-> orders table 和 order_history table。谢谢。
[编辑]:error
<?php
$query = "SELECT * FROM orders o
INNER JOIN order_history oh
ON o.order_id = oh.order_id";
$result = $conn->query($query);
if(!$result) die($conn->error);
$rows = $result->num_rows;
if ($rows > 0) {
?>
<table id="tabledata" class=" table table-striped table-hover table-bordered">
<tr class="bg-dark text-white text-center">
<th> Order ID </th>
<th> Model Number </th>
<th> Model Name </th>
<th> Warehouse A </th>
<th> Storage Room </th>
</tr >
<?php
// output data of each row
while($rows = $result->fetch_assoc()){
?>
<tr>
<?php
for($i=0;$i<count($rows);$i++){
?>
<td> <?php echo $rows['order_id']; ?> </td>
<td> <?php echo $rows['model_number']; ?> </td>
<td> <?php echo $rows['model_name']; ?> </td>
<td>
<ul>
<li>Delivered by <?php echo $rows['deliverer']; ?> at
<?php echo $rows['time_delivered']; ?></li>
<li><?php echo $rows['order_status']; ?> by <?php echo $rows['approver']; ?></li>
</ul>
</td>
<td>
<ul>
<li>Delivered by <?php echo $rows['deliverer']; ?> at
<?php echo $rows['time_delivered']; ?></li>
<li><?php echo $rows['order_status']; ?> by <?php echo $rows['approver']; ?></li>
</ul>
</td>
<?php
}
?>
</tr>
<?php
}
}
?>
</table>
【问题讨论】:
-
你为什么在行内使用 for 循环,同时提供你需要的行
-
你不应该有一个
for($i=0;$i<count($rows);$i++){循环,while循环已经遍历了你的所有结果。 -
但是我需要在我的 order_history 中的 station_name 列下循环输出我的结果,站是不同的,我无法在特定的 html 表列中回显它们
-
这不是一个无限循环,它是一个嵌套循环——你不需要。
-
通过使用实例化为
null但在每个循环结束时更新的“$group”变量。您应该通过提供所需的渲染输出来澄清您的问题。