我试图从mysql查询中获取一个下拉列表的项目列表,并在另一个列表中显示信息,而这会延迟表中的每一行。
当我不使用第二个while,但添加了第一个select后,它会产生我期望的结果,但下面的行是空的。
<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>
1条答案
按热度按时间kqhtkvqz1#
而外部却没有以任何方式“刷新”结果;因此,当第二次迭代发生时,$item\u搜索结果将已经用完。
如果需要多次使用结果中的行,则应将它们存储在一个可以重复迭代的数组中。