如何访问while循环外的mysql_fetch_array函数输出......?

时间:2012-02-23 17:02:36

标签: php mysql

我正在尝试访问while循环之外的$ Frined_Id。但它只返回最后访问的元素。有没有任何方法,以便我可以将Friend Id的值存储在数组中,然后可以随时在程序中使用它们。

$query="SELECT * FROM `user_friend` WHERE `User_Id`='$id'";
if($query_run=mysql_query($query))
    {
    $mysql_num_rows=mysql_num_rows($query_run);
    $i=$mysql_num_rows;
    while($row=mysql_fetch_array($query_run))
        {
            $Friend_Id=$row['Friend_Id'];
            $Name=$row['Friend_Name'];
            $Name_array=array("$Name");
            echo "<a href=\"view_profile.php?id=$Friend_Id\"/>".$Name."</a>".'<br>';

        }
        echo $Friend_Id;
} 

2 个答案:

答案 0 :(得分:1)

它只显示最后一个的原因是因为它每次在循环中都会被更改,而它最后设置的就是它。能够访问所有这些的修复是使$ Friend_Id成为一个数组:

$Friend_Id[] = $row['Friend_Id'];

然后在循环之后,您可以通过索引

访问它们
// Show the first one
echo("Friend ID is " . $Friend_Id[0]);

// Show the third one
echo("Friend ID is " . $Friend_Id[2]);

通过创建一个包含名称和id的关联数组,可以使它更有用:

$friend[] = Array($Name => $Friend_Id);

只是一些想法......

答案 1 :(得分:0)

如果您只获得一个结果(如果ID是唯一的),请不要使用循环。

$query = "SELECT * FROM 'user_friend' WHERE 'User_Id'= $id LIMIT 1";
$row = mysql_fetch_array($query_run);
...
echo $row['Friend_Id'];

然后您不必担心该值是否仅在循环内可用。