开发者

Combine 3 FQL in a single query - Facebook PHP

开发者 https://www.devze.com 2023-03-10 01:54 出处:网络
current i\'m doing this FQL to get user info Please help me combing all the query into one [i want to get all the info in 4 arrays by writing a single FQL] !

current i'm doing this FQL to get user info

Please help me combing all the query into one [i want to get all the info in 4 arrays by writing a single FQL] !

$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_squa开发者_运维百科re'];
 $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++;
    }
?>


Without any particular knowledge of FQL, I would hazard this guess; it seems to be SQL and you can normally just specify more than one field at a time...

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


Seems you want to collect the user_id, profile pic url and gender of a user. Then why run 3 queries? Run only once and extract the values from the returned array.

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

精彩评论

暂无评论...
验证码 换一张
取 消