想想这段代码可能有问题吗?这一切似乎都可以正常工作,除非它显示同一用户的两倍。每个用户在列表中显示两次?我在这里缺少什么吗?
<?
$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";
}
?>
答案 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";