0

当我使用以下代码时,我的 mysql 代码返回重复值:

首先,这是我的代码:

$customer = htmlspecialchars($_GET['customer']);

$STH = $DBH->query( "SELECT DISTINCT customer FROM table WHERE customer LIKE
    '$customer%' LIMIT 4" );
$STH->setFetchMode(PDO::FETCH_ASSOC);

while( $row = $STH->fetch() ){
    $customer_name = $row['customer'];
    $list .= "<p>" .$customer_name. "</p>";

    echo $list;
}

我的 SELECT 语句有问题吗?

我读到,当数据条目(如空格等)存在细微差异时,可以返回重复值。我检查并重新检查了条目,它们始终完全相同。

4

2 回答 2

2

尝试这个。

$customer = htmlspecialchars($_GET['customer']);

$STH = $DBH->query( "SELECT DISTINCT customer FROM table WHERE customer LIKE
    '$customer%' LIMIT 4" );
$STH->setFetchMode(PDO::FETCH_ASSOC);

while( $row = $STH->fetch() ){
    $customer_name = $row['customer'];
    $list .= "<p>" .$customer_name. "</p>";
}
echo $list;

你是每个周期的回声列表。我认为情况就是这样。

于 2013-10-29T14:50:45.610 回答
1

您将附加到$list每次迭代,然后每次都回显整个内容。因此,如果查询返回 Person1、Person2 和 Person3,这将是您的输出:

Person1    # End of loop iteration 1
Person1
Person2    # End of loop iteration 2
Person1
Person2
Person3    # End of loop iteration 3
于 2013-10-29T14:51:31.153 回答