Php 从下拉菜单中删除所选选项

Php 从下拉菜单中删除所选选项,php,mysqli,Php,Mysqli,我有一个场景,我有一个用户的编辑配置文件页面,其中有一个“Speciality”下拉列表,它的选项通过While循环从数据库表“Speciality”中获取。 我想首先在下拉列表中显示所选选项, 为此,我在顶部添加了以下代码: <option value=""><?php echo $row2["speciality"];?></option> 但问题是,当循环从数据库中获取相同的选项时

我有一个场景,我有一个用户的编辑配置文件页面,其中有一个“Speciality”下拉列表,它的选项通过While循环从数据库表“Speciality”中获取。 我想首先在下拉列表中显示所选选项, 为此,我在顶部添加了以下代码:

<option value=""><?php echo $row2["speciality"];?></option>
             

但问题是,当循环从数据库中获取相同的选项时,它会变得重复,我想要的是从while循环的所选选项中删除所选选项

有人能帮忙吗

完整代码:

<?php
$id = $_GET['id'];
$result = mysqli_query($con, "SELECT * FROM patient WHERE id = $id");
$rows = mysqli_num_rows($result);
$result2 = mysqli_query($con, "SELECT * FROM surgery_team WHERE p_id = $id");
$rows2 = mysqli_num_rows($result2);
while($patient = mysqli_fetch_assoc($result)) {
    $speciality = $patient['speciality'];   
}
}
$result2 = mysqli_query($con,"SELECT * 
                                FROM speciality 
                                WHERE id = $speciality");
$row2 = mysqli_fetch_array($result2);
?>    


<div class="col-6">
    <label class="control-label">Speciality</label>
    <select name="speciality" class="form-control" id="category-dropdown">
    <option value=""><?php echo $row2["speciality"];?></option>
<?php
$result = mysqli_query($con,"SELECT * 
                            FROM speciality 
                            WHERE parent_id = 0");
                    
while($row = mysqli_fetch_array($result)) {
?>
    <option value=""><?php echo $row["speciality"];?></option>
<?php
}
?>

特长

不要向列表中抛出两个副本,只需将选定的副本作为下拉列表中的选定项即可

<div class="col-6">
    <label class="control-label">Speciality</label>
    <select name="speciality" class="form-control" id="category-dropdown">
    
<?php
$result = mysqli_query($con,"SELECT * 
                            FROM speciality 
                            WHERE parent_id = 0");
                    
while($row = mysqli_fetch_array($result)) {
    $attr = $row2["speciality"] == $row["speciality"] ? "selected='selected'" : '';

    echo "<option $attr value='$row[speciality]'>$row[speciality]</option>";
}

特长

你为什么开始使用
$row2
而完整的代码却使用
$row
你在这里说的是相同的还是不同的代码?我认为你没有向我们展示足够的代码。我知道您真正想做的是为用户先前选择的选项设置
selected=“selected”
属性。但我不能肯定,除非看到更多code@RiggsFolly添加了完整的codeCant be,没有建立连接,并且对许多
}
脚本是开放的。甚至您也应该始终在
MYSQLI_uquot>或
PDO
API中使用,而不是将用户提供的值连接到查询中。永远不要相信任何用户输入!我使用了两个副本,因为第一个用户的专业id是从“patient”表中获取的,并且使用相同的id获取专业列的名称,该名称存储在另一个表中,即:speciality。