2012-02-23 5 views
0

Я пытаюсь получить доступ к $ Frined_Id вне цикла while. Но он возвращает только последний доступный элемент. Есть ли какой-либо метод, чтобы я мог хранить значение Id друга внутри массива, а затем использовать его в программе всякий раз, когда захочу.Как получить выход из функции mysql_fetch_array вне цикла while ...?

$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; 
} 

ответ

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]); 

Вы можете сделать его еще более полезным, сделав ассоциативный массив, содержащий имя и идентификатор, как:

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

Просто несколько идей ...

+1

okay ... спасибо .. –

0

Если вы получаете только один результат (если идентификатор уникален), не используйте цикл вообще.

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

Тогда вам не о чем беспокоиться, если значение доступно только внутри цикла.

Смежные вопросы