我正在尝试从MySQL查询中获取下拉列表的项目列表,并在另一个列表中显示信息,这会延迟表中的每一行。
当我不使用第二个但当添加了第一个选择时,它可以达到我期望的结果,但是下面的行为空。
<table style="width:100%">
<tr>
<td>Type</td>
<td>Qty</td>
<td>Temp(°C)</td>
<td>From</td>
<td>To</td>
</tr>
<tr>
<?php
if ($order_search->num_rows > 0) {
// output data of each row
while ($detail = mysqli_fetch_array($order_search)) {
echo "<td>";
echo "<select name='type'>";
while ($row = mysqli_fetch_row($item_search)) {
echo "<option>";
echo $row[0];
echo "</option>";
}
echo "</select>";
echo "</td>";
echo "<td>$detail[1]</td>";
if ($detail[2] > 0) {
echo "<td>$detail[2]°C</td>";
} else {
echo "<td>$detail[2]N/A</td>";
}
echo "<td>$detail[3]</td>";
echo "<td>$detail[4]</td>";
echo "</tr>";
}
}
?>
<tr>
<td>
<form method="post">
<input type="hidden" name="entry_id" value="<?php echo $entry_id; ?>">
<input type='hidden' name='order_id' value="<?php echo $order_id;?>">
<input type="submit" name="add_equipment" value="Add Equipment">
</form>
</td>
</tr>
</table>
带有添加的解决方案的代码现在可以正常工作:
<table style="width:100%">
<tr>
<td>Type</td>
<td>Qty</td>
<td>Temp(°C)</td>
<td>From</td>
<td>To</td>
</tr>
<tr>
<?php
if ($order_search->num_rows > 0) {
// output data of each row
while ($detail = mysqli_fetch_array($order_search)) {
echo "<td>";
echo "<select name='type'>";
while ($row = mysqli_fetch_row($item_search)) {
echo "<option>";
echo $row[0];
echo "</option>";
}
mysqli_data_seek($item_search,0);
echo "</select>";
echo "</td>";
echo "<td>$detail[1]</td>";
if ($detail[2] > 0) {
echo "<td>$detail[2]°C</td>";
} else {
echo "<td>$detail[2]N/A</td>";
}
echo "<td>$detail[3]</td>";
echo "<td>$detail[4]</td>";
echo "</tr>";
}
}
?>
<tr>
<td>
<form method="post">
<input type="hidden" name="entry_id" value="<?php echo $entry_id; ?>">
<input type='hidden' name='order_id' value="<?php echo $order_id;?>">
<input type="submit" name="add_equipment" value="Add Equipment">
</form>
</td>
</tr>
</table>
答案 0 :(得分:0)
外部while不会以任何方式“刷新”结果;因此,当发生第二次迭代时,$ item_search结果将已经用完。
如果您需要多次使用结果中的行,则应将它们存储在一个数组中,以便您可以反复迭代。