nested while for table select只给出一个结果

0g0grzrc  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(248)

我试图从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]&deg;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]&deg;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>
kqhtkvqz

kqhtkvqz1#

而外部却没有以任何方式“刷新”结果;因此,当第二次迭代发生时,$item\u搜索结果将已经用完。
如果需要多次使用结果中的行,则应将它们存储在一个可以重复迭代的数组中。

相关问题