从数据库中选择选项

时间:2018-10-19 10:29:04

标签: php

我想使用数据库中的数据创建选择列表

我做了这样的事情

<?php
  if ($resultt->num_rows > 0) {
      // output data of each row
      while($row = $resultt->fetch_assoc()) {
          ?>
          <select name="name" class="custom-select">
            <?php

          echo "<option value='1'" . $row['name'] . "'>" . $row['name'] . "</option>";
          ?>
          </select>
          <?php
      }
  } else {
      echo "0 results";
  }
?>

我看到我的输出,但是每个数据都放在单独的“盒子”中。我只想列表选择例如options1或2。 我做错了什么?

3 个答案:

答案 0 :(得分:2)

您需要将<select>元素放在循环之外。

<?php
if ($resultt->num_rows > 0) {
  echo '<select name="name" class="custom-select">';
  // output data of each row
  while($row = $resultt->fetch_assoc()) {
    echo "<option value='$row[id]'>$row[name]</option>";
  }

  echo '</select>';
} else {
  echo "0 results";
}

答案 1 :(得分:1)

之所以发生这种情况,是因为您将<select>放入了循环,因此每次创建新的<select>

只需将您选择的外部循环如下所示

<select name="name" class="custom-select">
<?php 
while($row = $resultt->fetch_assoc()) {
    echo "<option value='1'" . $row['name'] . "'>" . $row['name'] . "</option>";
}
?>
</select>

答案 2 :(得分:1)

您要在每个循环中嵌套选择元素

<select name="name" class="custom-select">
<?php 
        while($row = $resultt->fetch_assoc()) {
            echo "<option value='".$row['name']."'>" .$row['name']."</option>";
         }
?>
</select>

请注意不必要的单引号,它会破坏您的html:

 "'>"