【问题标题】:How to display db results as options in HTML dropdown with PHP and Mysqli? [duplicate]如何使用 PHP 和 Mysqli 将 db 结果显示为 HTML 下拉列表中的选项? [复制]
【发布时间】:2019-05-29 19:26:40
【问题描述】:

我试图让用户从表单中的下拉列表中选择状态字段,但是尽管查询有效,但数据库已连接,下拉列表中不显示列表。

不确定是否相关,但我正在运行 Windows Server、IIS 10 以及最新的 PHP 和 MySql。

<div class="form-group col-md-3">
    <label for="state">State</label>
    <select class="form-control" name="state" id="state">
                                            
    <?php  
    // Query to find STATE
    $sql1 = "SELECT * FROM codetable WHERE category = 'state'";
    $result1 = $conn->query($sql1);

    $row1 = mysqli_fetch_array($result1);

    while($row1 = mysqli_fetch_array($result1))  
        {  
            echo '<option value=" '.$row1['code'].' "> '.$row1['description'].' </option>';  
         }
     ?>
    </select>
</div>

我希望数据库中的列表在下拉列表中,但它是空的(没有下拉列表)。

【问题讨论】:

  • 为什么在循环之前要额外调用mysqli_fetch_array()?这将跳过第一行。
  • 不要在选项中的值周围放置空格。
  • 如果你使用View Source,你看到选项了吗?

标签: php html mysqli


【解决方案1】:

删除你的第一个

$row1 = mysqli_fetch_array($result1);

行 & 将您的两个变量(结果和第 1 行)放入 var_dump 以进行调试

【讨论】:

    【解决方案2】:

    在你的while循环之前去掉$row1 = mysqli_fetch_array($result1);并用这个替换循环......

    while($row1 = mysqli_fetch_array($result1))  
    {  
        ?>
            <option value="<?php echo $row1['code']; ?>"><?php echo $row1['description']; ?></option> 
        <?php
    }
    

    回显 HTML 不是一个好习惯。尽可能用 PHP 标记将其分解,这将使您的代码更易于调试。

    【讨论】:

    • 跟进:如何在编辑表单中显示数据库记录,并且仍然允许下拉菜单进行更新?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-29
    • 1970-01-01
    • 2017-05-11
    • 1970-01-01
    • 2016-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多