while循环选择选项继续循环

时间:2014-02-11 12:46:30

标签: php mysqli

大家好我有问题这是result

这是我的代码。

$iqry2 = $mysqli->prepare("SELECT itemname,unitmeasure FROM table_item");

    $iqry2->execute();
    $iqry2->bind_result($itemname,$unitmeasure);
    $iqry2->store_result();


    <div class="form-group ">
    <label for="itemname" class="control-label col-lg-2">Item Name</label>
    <div class="col-lg-10">


    <select name="iname" class="form-control">

    <?php

    while ($iqry2->fetch()){

    echo "<option>$itemname</option>";

    ?>
    </select>


    </div>
    </div>


    <select name="unit" class="form-control">

    <?php

    echo  "<option>$brandname</option>";

    }

    ?>
    </select>
    </div>
    </div>

3 个答案:

答案 0 :(得分:2)

您确定您的查询未返回空吗?

您应该对查询返回的数据执行vardump()。如果它为NULL或FALSE,那么您需要修改查询以检查它是否为空。如果不为空,则继续。

答案 1 :(得分:1)

你也有

  </select>
  </div>
  </div>
  <select name="unit" class="form-control">

在你的while循环中,所以不是填充2 select个框,而是连续关闭并打开新的下拉列表。

将其更改为:

<?php
    $items = array();
    $brands = array();
    // First create 2 arrays with all options
    while ($iqry2->fetch()){
      $items[] = $itemname;
      $brands[] = $brandname;
    }
    $iqry2->close();
?>
<!--Now use those arrays to fill 2 seperate selectboxes-->  

<select name="iname" class="form-control">
<?php foreach($items as $item):?>
    <option><?=$item?></option>
<?php endforeach;?>
</select>


<select name="unit" class="form-control">
<?php foreach($brands as $brand):?>
    <option><?=$brand?></option>
<?php endforeach;?>
</select>

答案 2 :(得分:0)

你想做什么?你有1或2个选择? 你做了一段时间,它应该只推送<option>,但在你写一个<select>标签的同时你正在另一个选择...

<select name="iname" class="form-control">
    <?php
        while ($iqry2->fetch()){
            echo "<option>$itemname</option>";
        } // Add this bracket here to finish your while
    ?>
</select>

<select name="unit" class="form-control">
    <?php
        // You need another while here
        while ( ???? ) {
            echo  "<option>$brandname</option>";
        }
    ?>
</select>

我不确定你想做什么,但我认为你必须做2个sql请求,一个select itemname...然后一秒select brandname

但是阅读你的代码我真的不知道你的期望是什么:(