2011-12-06 98 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

不知道這是工作或沒有,但嘗試將FQL查詢添加到這樣的事情,

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

我有同樣的問題。雖然回答問題已經很晚了,但它會幫助某人。這就是回答這個問題的原因。我們不得不解析由facebook給出的結果集。 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++; 
       } 
      }