2014-05-10 2 views
0

이 코드에 몇 가지 문제가있어서 사용자 2가 로그인 한 사용자와 동일하고 상태가 '1'인 데이터베이스의 전체 정보 목록을 가져 오려고합니다. 이 선택에서 동일 첫 번째 숫자이기 때문에데이터 배열이 제대로 작동하지 않습니까?

<? 
$user_id = $_SESSION['userid']; 

$data = mysql_query(" 
    SELECT 
     user1 
    FROM 
     friend_requests 
    WHERE 
     user2 = '$user_id' 
    AND 
     status = '1' 
") or die(mysql_error()); 

$friend_list = mysql_fetch_array($data); 
foreach($friend_list as $friend_list) { 
    echo $friend_list, '<br>'; 
} 
?> 

이 코드는 숫자 "76"가 표시됩니다 : 여기

user1: 76, 11, 11, 87 
user2: 11, 22, 15, 11 
status: 1, 1, 1, 1 

내 PHP 코드입니다 : 예를 들어, 여기 내 데이터베이스입니다 데이터베이스 ('11'로 로그인). 그러나 같은 경우 인 숫자 "87"이 표시되지 않습니까? 게다가 "상태"도 표시하지 않겠습니까? 이 아이디어를 얻으려면 어떤 아이디어가 필요합니까? 나는 이런 종류의 일에 초보자이다. 감사!

피씨. 나는 MySQL이 시대에 뒤떨어 졌다는 것을 알고 있지만, 나는 그 순간에 할 수있는 일이 아무것도 없다.

+2

MySQL은 구식이 아닙니다. PHP의 mysql_ API는 더 이상 사용되지 않습니다. – Strawberry

+0

첫 번째 : 더 많은 필드를 표시하려면 쿼리에 필드를 추가해야합니다. '사용자 1, 사용자 2, 상태 FROM ... '을 선택하십시오. 둘째 : 둘 이상의 데이터 행을 가져 오려면 mysql_fetch_array를 두 번 이상 실행해야합니다. 가장 좋은 방법은 @ iCode4U 또는 @MarkS와 같은 while 루프를 사용하여 해답을 찾는 것입니다. – endofsource

답변

0

코드에서이

<? 
    $user_id = $_SESSION['userid']; 

    $data = mysql_query(" 
     SELECT 
      user1,status 
     FROM 
      friend_requests 
     WHERE 
      user2 = '$user_id' 
     AND 
      status = '1' 
    ") or die(mysql_error()); 

    while($friend_list = mysql_fetch_array($data))//added this 
    { 

     echo $friend_list[¨user1¨].$friend_list[¨status¨].'<br>'; 

    } 
    ?> 
+0

모든 결과가 두 번 표시되지만 완벽하게 작동합니까? – Jessiikah1992

+0

foreach없이 시도해보세요. – iCode4U

0

당신은 데이터의 한 행을 가져보십시오. 즉 mysql_fetch_array는 결과 집합에서 하나의 "행"을 가져 오기 때문이다

당신의 foreach는 1 행을 얻는 이유는, 그것을 dispplays
$friend_list = mysql_fetch_array($data); 

. 는 전체 목록은 다음과 같이 데이터를 가져 얻고 싶다면 :

while($friend_list = mysql_fetch_array($data)) { 
    echo $friend_list, '<br>'; 
} 

를 행을 가져옵니다이 경우 루프에서 가져올 데이터가 될 것입니다 untin.

관련 문제