Php mysql防止下拉列表重复

Php mysql防止下拉列表重复,php,mysql,duplicates,dropdown,Php,Mysql,Duplicates,Dropdown,我想防止我的编辑页面中的下拉选项重复 这是我的疑问: $res= mysql_query ("SELECT * FROM Acc_skills INNER JOIN Accounts ON Accounts.Role_ID = Acc_skills.FK_Role_ID INNER JOIN Skills ON Skills.Skills_id = Acc_skills.FK_Skills_ID WHERE Acc_skills.Acc_skills_id = '$id'"); $row

我想防止我的编辑页面中的下拉选项重复

这是我的疑问:

$res= mysql_query ("SELECT * FROM Acc_skills
INNER JOIN Accounts ON 
Accounts.Role_ID = Acc_skills.FK_Role_ID 
INNER JOIN Skills ON 
Skills.Skills_id = Acc_skills.FK_Skills_ID
WHERE Acc_skills.Acc_skills_id = '$id'");
$row = mysql_fetch_array($res); 
这是我的密码:

<?php 
echo '<option value= '.$row[3].' selected="selected">'.$row[3].' </option>';
echo '<option id="Low" value="Low">Low</option>
      <option id="Average" value="Average">Average</option>
      <option value="High">High</option>
</select>';
?>

我已经设法从我的数据库中提取了技能水平数据(例如,高),但是,它现在显示了重复下拉选项(例如,现在有2个“高”选项)。 由于“技能级别”选项是手动输入的,如何防止出现重复的下拉选项

提前谢谢

首先:

1-请从mysql进入mysqli或PDO,我建议PDO

2-如果数据库中存在重复数据,请使用
“选择DISTINCT”
获取结果

3-如果您有静态选项,请尝试以下操作:

<?php 
echo "<select>";
echo '<option value= '.$row[3].' selected="selected">'.$row[3].' </option>';
echo '<option id="Low" value="Low">Low</option>
      <option id="Average" value="Average">Average</option>
      <option value="High">High</option>
</select>';
?>
 echo "<select>";
    echo "<option id=Low value=Low >Low</option>
          <option id=Average value=Average>Average</option>
          <option value=High>High</option>";
        foreach($result as $index){    
         echo " < optionvalue =$index[3] selected = 'selected' > $index[3]</option > ";   
       }
     echo "</select>";

或者,如果要获取所有行,请执行以下操作:

<?php 
echo "<select>";
echo '<option value= '.$row[3].' selected="selected">'.$row[3].' </option>';
echo '<option id="Low" value="Low">Low</option>
      <option id="Average" value="Average">Average</option>
      <option value="High">High</option>
</select>';
?>
 echo "<select>";
    echo "<option id=Low value=Low >Low</option>
          <option id=Average value=Average>Average</option>
          <option value=High>High</option>";
        foreach($result as $index){    
         echo " < optionvalue =$index[3] selected = 'selected' > $index[3]</option > ";   
       }
     echo "</select>";
echo”“;
回声“低”
平均值
“高”;
foreach($result作为$index){
echo“$index[3]”;
}
回声“;
首先:

1-请从mysql进入mysqli或PDO,我建议PDO

2-如果数据库中存在重复数据,请使用
“选择DISTINCT”
获取结果

3-如果您有静态选项,请尝试以下操作:

<?php 
echo "<select>";
echo '<option value= '.$row[3].' selected="selected">'.$row[3].' </option>';
echo '<option id="Low" value="Low">Low</option>
      <option id="Average" value="Average">Average</option>
      <option value="High">High</option>
</select>';
?>
 echo "<select>";
    echo "<option id=Low value=Low >Low</option>
          <option id=Average value=Average>Average</option>
          <option value=High>High</option>";
        foreach($result as $index){    
         echo " < optionvalue =$index[3] selected = 'selected' > $index[3]</option > ";   
       }
     echo "</select>";

或者,如果要获取所有行,请执行以下操作:

<?php 
echo "<select>";
echo '<option value= '.$row[3].' selected="selected">'.$row[3].' </option>';
echo '<option id="Low" value="Low">Low</option>
      <option id="Average" value="Average">Average</option>
      <option value="High">High</option>
</select>';
?>
 echo "<select>";
    echo "<option id=Low value=Low >Low</option>
          <option id=Average value=Average>Average</option>
          <option value=High>High</option>";
        foreach($result as $index){    
         echo " < optionvalue =$index[3] selected = 'selected' > $index[3]</option > ";   
       }
     echo "</select>";
echo”“;
回声“低”
平均值
“高”;
foreach($result作为$index){
echo“$index[3]”;
}
回声“;

根据您的评论,您需要根据数据库值使用
selected=“”
选项。您可以这样使用:

<select>
<option <?=($row[3] == 'Low' ? 'selected=""' : '')?> id="Low" value="Low">Low</option>
<option <?=($row[3] == 'Average' ? 'selected=""' : '')?> id="Average" value="Average">Average</option>
<option <?=($row[3] == 'High' ? 'selected=""' : '')?> value="High">High</option>
</select>


根据您的评论,您需要根据数据库值使用
selected=“
选项。您可以这样使用:

<select>
<option <?=($row[3] == 'Low' ? 'selected=""' : '')?> id="Low" value="Low">Low</option>
<option <?=($row[3] == 'Average' ? 'selected=""' : '')?> id="Average" value="Average">Average</option>
<option <?=($row[3] == 'High' ? 'selected=""' : '')?> value="High">High</option>
</select>


然后排除查询中的“高”级别技能$row[3]的值是多少?
选择DISTINCT…
?$row[3]的值是从数据库中选择的当前记录的技能级别,它可以是高、平均或低,具体取决于数据库记录,而不是您希望使用的selected=“”根据数据库值对吗?然后排除查询中的“高”级别技能$row[3]的值是多少?
选择DISTINCT…
?$row[3]的值是从数据库中选择的当前记录的技能级别,它可以是高、中或低,具体取决于数据库记录,而不是您想要使用selected=“”根据数据库值正确吗?谢谢!我现在明白了!真的很感激!非常感谢。我现在明白了!真的很感激!