如何选择具有数组值的选项

时间:2018-05-24 06:51:07

标签: php sql

有人可以解释一下如何使用数组的值来制作一个选择选项。我自己写了一些代码但是这个领域仍然是空的。

<select id="gebruiker" name="gebruiker" class="form-control">
   <?php
      $query = "SELECT * FROM users";
      $result = mysqli_query($conn, $query);

      while ($row1 = mysqli_fetch_array($result)):;
      ?>
           <option value="<?php
              echo $row1[0]; ?>">
              <?php
                 echo "<p>$row1[0] $row1[1]</p>"; ?>
           </option>
   <?php
      endwhile;
      ?>
</select>

代码需要显示用户的ID($ row [0])和名称($ row [1])。

2 个答案:

答案 0 :(得分:0)

你可以这样做:

PHP:

<?php
    function getSelectItems()
    {
        $con = mysqli_connect("localhost", "my_user", "my_password", "world");
        $table = array();

        if ($result=mysqli_query($con, "SELECT * FROM users")) {
            if (mysqli_num_rows($result) > 0) {
                $counter = 0;
                while($row = $result->fetch_assoc()) {
                    $table[$counter] = $row;
                    $counter++;
                }
            }
        }

        $con->close();

        return $table;
    }
?>

<select id="gebruiker" name="gebruiker" class="form-control">
    <?php
        $items = getSelectItems();
        for($i = 0; $i < count($items); $i++)
        {
            $row = $items[$i];
            echo "<option value=\"".$row[0]."\">".$row[0]." ".$row[1]."</option>";
        }
    ?>
</select>

将逻辑与视图分开是件好事。因此,我在这里外包了将数据提取到函数中。

这使视图更清晰。

答案 1 :(得分:-1)

您可以稍微清理一下代码。没有必要继续打开和关闭php标签,你可以通过使用反向转义双引号来打印HTML作为 echo 函数的一部分(即&#34; \&#34;),但我建议你在双引号 echo 中使用单引号。

我还会使用 foreach 替换您的 。假设您的变量 $ result 与您定义的一致:

<select id="gebruiker" name="gebruiker" class="form-control">
<?php
    $query = "SELECT * FROM users";
    $result = mysqli_query($conn, $query);
    $rows=$result->fetch_all(MYSQLI_ASSOC);
    foreach($rows as &$row) {
        echo "
            <option value='$row[0]'>
                <p>$row[0] $row[1]</p>
            </option>
        ";
    }
?>
</select>