Объедините 3 FQL в одном запросе - Facebook PHP - PullRequest
0 голосов
/ 01 июня 2011

в настоящее время я делаю этот FQL для получения информации о пользователе
Пожалуйста, помогите мне объединить весь запрос в один [ Я хочу получить всю информацию в 4 массивах, написав один 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_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++;
    }
?>

Ответы [ 2 ]

1 голос
/ 01 июня 2011

Похоже, вы хотите собрать user_id, URL профиля и пол пользователя.Тогда зачем запускать 3 запроса?Запустите только один раз и извлеките значения из возвращенного массива.

$fql = "SELECT uid, name, pic_square, sex FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())";
1 голос
/ 01 июня 2011

Без каких-либо особых знаний о 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'];
}
...