0

在这个脚本中,当某个行记录与浏览器地址栏中的名称匹配时,我基本上想从 mysql 表中回显数据。但由于某种原因,没有回显数据。我的while循环不起作用的任何原因?

 $users = $_GET['username'];



$other_friend_query = mysql_query("SELECT * FROM friend WHERE RelatingUser='$users'");
$other_friend_assoc = mysql_fetch_assoc($other_friend_query);


while ($other_friend_assoc = mysql_fetch_assoc($other_friend_query)) {
    $friend_related = $other_friend_assoc['RelatedUser'];
      echo $friend_related;




  }
4

2 回答 2

3

那是因为您在循环mysql_fetch_assoc之前调用。while当你调用它时,它会获取一个结果。然后,当您进入循环时,已经获取了该结果。只需删除它,您就可以开始了。如评论中所述,停止使用mysql_函数。下面的代码将转义您发布的变量并检查错误。使用列列表而不是SELECT *.

$users = mysql_real_escape_string($_GET['username']);

$other_friend_query = mysql_query("SELECT * FROM friend WHERE RelatingUser='$users'") or die( mysql_error() );

while( $other_friend_assoc = mysql_fetch_assoc($other_friend_query) ) {
    $friend_related = $other_friend_assoc['RelatedUser'];
    echo $friend_related;
}
于 2012-12-10T22:12:55.333 回答
1

我的while循环不起作用的任何原因?

可能不是唯一的原因,但您正在跳过第一个结果。

// the following line is unused and therefore unnecessary
$other_friend_assoc = mysql_fetch_assoc($other_friend_query);

while ($other_friend_assoc = mysql_fetch_assoc($other_friend_query)) {
于 2012-12-10T22:13:19.573 回答