我正在从数据库中填充一个选择字段。但是,许多行在同一列中具有相同的值。如何防止选择字段中出现重复值?
目前,我有这个
$q = "SELECT * FROM table WHERE UserID = ?";
$smt = $db->prepare($q);
$smt->execute(array($userid));
while($row = $smt->fetchObject()){
echo '<option value="'. $row->Column. '">'.$row->Column.'</option>';
}
它将为数据库中匹配查询的每一行回显一个新选项。在这种情况下,它可能是这样的。
<option value="Value1">Value1</option>
<option value="Value1">Value1</option>
<option value="Value2">Value2</option>
<option value="Value1">Value1</option>
我该如何防止这种情况发生?
最佳答案
是否只需要 DISTINCT
列值?
SELECT DISTINCT column FROM table WHERE UserID = ?
假设您的代码是准确的,您不需要从表中选择所有 (*
),因为您只使用 Column
m 因此使用 SELECT DISTINCT Column
足以从 Column
关于PHP防止while循环中的重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19493970/