我的while循环不起作用

时间:2012-12-10 22:08:34

标签: php

在这个脚本中,我基本上想要在某个行记录与浏览器地址栏中的名称匹配时回显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;




  }

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分: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)) {