2011-12-06 2 views
3

FQL을 사용하여 특정 요구 사항을 충족하는 사용자의 친구 (예 : 컴퓨터 과학 전공 친구 등)를 반환 할 수 있습니까? 다음은 친구 데이터를 반환하기 위해 사용하고있는 현재 FQL 쿼리입니다. 어떻게 수행 할 수 있습니까? 그렇지 않다면 대체 솔루션은 무엇입니까?FQL을 사용하여 친구의 데이터 반환

try{ 
     $fql = "select name,education,work from user WHERE uid IN (select uid2 from friend where uid1=($user))"; 
     $param = array(
      'method' => 'fql.query', 
      'query'  => $fql, 
      'callback' => '' 
     ); 
     $fqlResult = $facebook->api($param); 
    } 
    catch(Exception $o){ 
     d($o); 
    } 
} 

답변

0

확실하지 이것은 내가 같은 문제가 없었다

select name,education,work from user WHERE uid IN (select uid2 from friend where uid1=($user) AND education.type = "Computer Science" 
+0

작동하지 않습니다. 사용자 테이블은 단지 하나의 거대한 테이블이고 필드는 데이터의 배열 인 교육입니다. 해당 배열의 데이터를 FQL을 통해 개별적으로 액세스 할 수 있습니까? 다음은 설명서의 교육 배열에 대한 설명입니다. education \t array \t 사용자의 교육 기록 목록입니다. 연도 및 유형 필드, 학교 개체 (이름, ID, 유형 및 선택적 연도, 학위, 농도 배열, 클래스 배열 및 배열 포함)가 포함됩니다. – buttonitup

0

, 작업 또는 그러나이 같은에 FQL 쿼리를 추가하려고하지. 질문에 대답하는 것은 매우 늦기는하지만 누군가에게 도움이 될 것입니다. 그것이이 질문에 답하는 이유입니다.

우리는 페이스 북에서 주어진 결과 집합을 구문 분석해야합니다. Facebook은 우리가 그것을 확인하는 것을 허용하지 않습니다.

$freinds_list=$facebook->api(array('method'=>'fql.query', 
        'query'=>"SELECT uid, name, education_history 
         FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = $user) ORDER BY name")); 

      $i=0; 

      foreach($freinds_list as $friend) { 
       $j=0; 
       $connection=0; 
       foreach($friend['education_history'] as $education) { 
        if(strstr($education['type'],'Computer Science')) { 
         $user[$i]=$friend['name']; 
         $i++;       
        } 
        $j++; 
       } 
      } 
관련 문제