用户列表显示每个用户两次?

时间:2014-03-28 14:12:44

标签: php html mysql

想想这段代码可能有问题吗?这一切似乎都可以正常工作,除非它显示同一用户的两倍。每个用户在列表中显示两次?我在这里缺少什么吗?

    <?
                                        $sql6= "SELECT username, email_address FROM users WHERE blocked='1'";

$result6 = mysql_query($sql6);

while($user6 = mysql_fetch_array($result6)){
              $user = $user6['username'];
              $email = $user6['email_address'];

              $displayblocked .= '<font color="#FF0000"><strong>'. $user .'</strong></font> | '. $email .'<br/>';
    print "$displayblocked";
}
    ?>

1 个答案:

答案 0 :(得分:4)

你正在连接你的$displayblocked字符串并在循环中输出它 - 连接的字符串将在每次循环迭代时输出。

所以,如果你有两个用户 - 第一个用户输出两次,第二个用户输出一次。如果你有三个用户,第一个将输出三次,第二个输出两次,第三个输出一次...... etc =]

你可以在这做两件事;第一个是不连接字符串并在每次迭代期间仍然输出它:

$displayblocked = '<font color="#FF0000"><strong>'. $user .'</strong></font> | '. $email .'<br/>';
print "$displayblocked";

第二种是将print语句移到循环之外并仍在其中连接:

while($user6 = mysql_fetch_array($result6)){
    $user = $user6['username'];
    $email = $user6['email_address'];

    $displayblocked .= '<font color="#FF0000"><strong>'. $user .'</strong></font> | '. $email .'<br/>';
}

print "$displayblocked";