PHP防止while循环中的重复

标签 php mysql sql pdo

我正在从数据库中填充一个选择字段。但是,许多行在同一列中具有相同的值。如何防止选择字段中出现重复值?

目前,我有这个

$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 = ?

假设您的代码是准确的,您不需要从表中选择所有 (*),因为您只使用 Columnm 因此使用 SELECT DISTINCT Column 足以从 Column

中恢复去重结果和值

关于PHP防止while循环中的重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19493970/

相关文章:

php - Yii 2 字段 2 的值必须大于字段 1

php - 连接到生产服务器上的 MySQL 数据库时出现问题

mysql LEFT JOIN 主表和两个附加表,每个表都有最大值

javascript - 如何使用 Azure 上的脚本计算表中的元素数量?

MySQL 左连接(我认为)

python - 将 Python 变量从一个函数传递到另一个函数,以将其与 SQL 数据库的变量进行比较

php - Mysql 编辑用户下的订单

PHP 7 和 MongoDB 驱动程序

php - 如何让 PHP 函数在返回后继续?

mysql - 从 VB 程序向数据库添加数据 -> 安全方式?