首页 > 解决方案 > 从数据库变量 php 填充下拉列表

问题描述

我正在尝试使用数据库中的变量填充下拉列表,但下拉列表显示为空白。我认为问题在于我如何回显数据。

<div class="col sm-4">
    <label for="paperSelects1"><b>Select Breed to Update</b></label>

    <select id='updatebreed' name='ubreed'>

            <?php while($row = $result->fetch_assoc() ){
                $breed_data = $row['breed'];
                $dogid = $row['dogid'];
            
                echo "<option value='$dogid'> $row </option>";
            }
            ?>
            
    </select> 
        <input type="submit" value="Submit">
</div>

这是我与数据库的连接。我哪里错了?

<?php

    include("../config/connect.php");

    $read = "SELECT * FROM dog_best_in_show ";
   
    $result = $conn->query($read);

?>

标签: phphtmlmysqlhtml-select

解决方案


您使用了错误的未分配的 php 变量,所以请更新,所以请更新它

 echo "<option value='$dogid'> $row </option>";

 echo "<option value='$dogid'> $breed_data</option>";

所以你的完整代码将是这样的,我正在使用 pdo 连接所以这是 pdo 代码

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test";
?>


<div class="col sm-4">
<label for="paperSelects1"><b>Select Breed to Update</b></label>

<select id='updatebreed' name='ubreed'>
    <?php
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $stmt = $conn->prepare("SELECT * FROM dog_best_in_show");
    $stmt->execute();
    // set the resulting array to associative
    $result = $stmt->fetchAll();
    foreach ($result as $k => $v) {

        $breed_data = $v['breed'];
        $dogid = $v['dogid'];

        echo "<option value='$dogid'> $dogid </option>";
    }
    ?>

</select>
<input type="submit" value="Submit">
</div>

推荐阅读