Php mysql 防止下拉重复

Php mysql prevent dropdown duplicates

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

这是我的查询:

$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 个 "High" 选项)。 由于技能级别选项是手动输入的,我如何防止出现重复的下拉选项?

提前致谢!

首先:

1- 请从 mysql 前往 mysqli 或 PDO,我建议 PDO。

2- 如果您的数据库中有重复数据,请使用 "SELECT 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>";

根据您的意见,您需要根据数据库值使用 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]等于"Average"或"High"或"Low"比select相关的选项菜单并添加selected=" " <option> 标签中的属性。

旁注:

请使用 mysqli_*PDO 扩展,因为 mysql_* 扩展已弃用且在 PHP 7 中不可用。