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
中不可用。
我想防止下拉选项在我的编辑页面中出现重复..
这是我的查询:
$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
中不可用。