嵌套而表选择仅给出一个结果

时间:2018-06-20 16:16:55

标签: php html mysql

我正在尝试从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]&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>

1 个答案:

答案 0 :(得分:0)

外部while不会以任何方式“刷新”结果;因此,当发生第二次迭代时,$ item_search结果将已经用完。

如果您需要多次使用结果中的行,则应将它们存储在一个数组中,以便您可以反复迭代。