2011-06-01 73 views
0

目前我正在做這個FQL來獲得用戶信息
請幫我把所有的查詢合併爲一個[我想通過編寫一個數組來獲得4個數組中的所有信息單個FQL]!在一個查詢中結合3個FQL - Facebook PHP

$pics=array(); 
$ids=array(); 
$names=array(); 
$sexs=array(); 
$i=0; 

$fql = "SELECT uid FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) "; 
$fUIDS = $facebook->api(array(
'method' => 'fql.query', 
'query' =>$fql, 
)); 
foreach($fUIDS as $data) 
{ 
$ids[$i]=$data['uid']; 
$i++; 
} 
?> 
<?php 
$fql = "SELECT name FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())  "; 
$fNames = $facebook->api(array(
'method' => 'fql.query', 
'query' =>$fql, 
)); 
$i=0; 
foreach($fNames as $data) 
{ 
$names[$i]=$data['name']; 
$i++; 
} 

$fql = "SELECT pic_square FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) "; 
$fPics = $facebook->api(array(
'method' => 'fql.query', 
'query' =>$fql, 
)); 
$i=0; 
foreach($fPics as $data) 
{ 
$pics[$i]=$data['pic_square']; 
$i++; 
} 

$fql = "SELECT sex FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())"; 
$fSexs = $facebook->api(array(
    'method' => 'fql.query', 
    'query' =>$fql, 
    )); 
    $i=0; 
    foreach($fSexs as $data) 
    { 
    $sexs[$i]=$data['sex']; 
    $i++; 
    } 
?> 

回答

1

沒有FQL的任何特定知識,我會冒這個猜測;它似乎是SQL,你可以通常只是在一個時間指定多個領域......

$pics = array(); 
$ids = array(); 
$names = array(); 
$sexs = array(); 

$fql = 'SELECT uid, name, pic_square, sex FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())'; 
$data = $facebook->api(array('method' => 'fql.query','query' => $fql)); 
foreach ($data as $datum) { 
    $pics[] = $datum['pic_square']; 
    $ids[] = $datum['uid']; 
    $names[] = $datum['name']; 
    $sexs[] = $datum['sex']; 
} 
+0

實際上,我可以編寫FQL,但需要知道如何將值存儲在數組中 – Sourav 2011-06-01 04:05:36

+0

我已經進一步擴展了我的示例。 – 2011-06-01 04:07:34

+0

+1 thnx幫助我,它工作! – Sourav 2011-06-01 04:13:04

1

似乎要收集用戶的USER_ID,個人檔案相片URL和性別。那爲什麼要運行3個查詢?只運行一次並從返回的數組中提取值。

$fql = "SELECT uid, name, pic_square, sex FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())";