sql填充下拉列表以包含数据库值

时间:2014-12-19 19:11:04

标签: php mysql

我可以使用数据库中的所有条目填充选择下拉列表,但卡在已设置的值无法显示或显示为重复的位置。我在这里搜索并发现了两个类似的问题,但他们的答案对我没有帮助。我的代码在下面

包含connect.php,其中包含所有数据库连接信息

<?php
include 'connect.php';
$qry=mysql_query("SELECT * FROM experts", $con);
if(!$qry)
{
die("Query Failed: ". mysql_error());
}
?>


<select name="expert" id="expert">
<option value="<?php echo $row['expert']; ?>"><?php echo $row['expert']; ?> </option>


<?php
while($row=mysql_fetch_array($qry))
{
echo "<option value='".$row['expert']."'>".$row['expert']."</option>";
}
?>

</select>

这个问题是它包含一个重复的条目以及所选的条目。我知道我需要添加一个if语句来删除所选的条目,但不知道如何。

PHP MySQL Drop Down Box Populate Selected Value似乎有我的答案,但我似乎无法使用该示例以不同的方式使用我的代码。

2 个答案:

答案 0 :(得分:1)

您只需删除while循环之外的<option>即可。 这就是为什么你的第一个项目是重复的。

<?php
    include 'connect.php';

    $qry=mysql_query("SELECT * FROM experts", $con);

    if(!$qry)
    {
        die("Query Failed: ". mysql_error());
    }
?>

<select name="expert" id="expert">
<?php
    while($row=mysql_fetch_array($qry))
    {
        echo "<option value='".$row['expert']."'>".$row['expert']."</option>";
    }
?>
</select>

答案 1 :(得分:1)

<select name="expert" id="expert">
    <!-- Show an empty option so the "default" is blank -->
    <option value=""></option>
    <?php
    // Define the desired selected value from the database (if any)
    $selected_value = CODE_TO_GET_CURRENT_VALUE;
    // Loop through all of the available options to create your... well, options
    while($row=mysql_fetch_array($qry))
    {
        // If this option matches the one you want to select, add the HTML "selected" attribute
        $selected = ($row['expert'] == $selected_value ) ? ' selected' : '';
        echo "<option value='" . $row['expert'] . "'" . $selected . ">" . $row['expert'] . "</option>";
    }
    ?>
</select>