首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fql.multiquery返回空数组

fql.multiquery返回空数组
EN

Stack Overflow用户
提问于 2011-12-29 11:55:16
回答 2查看 1.4K关注 0票数 0

我正在尝试查询一个页面的所有相册,并获得每个相册的封面照片。下面是我的代码,它返回一个空结果。

我可以分别进行这两个查询,没有问题,所以这不是权限问题。

代码语言:javascript
复制
$album_fql = "SELECT aid, owner, name, object_id, cover_pid, cover_object_id 
              FROM album
              WHERE owner = 'xxxxxxx'";

$albumpic_fql = "SELECT pid, src_small
                 FROM photo 
                 WHERE pid IN (SELECT cover_pid FROM #query1)";

$album_param = array(
                 'method'    => 'fql.multiquery',
                 'queries'   => '{"query1":"' . $album_fql . '", "query2":"' . $albumpic_fql . '"}');

$album_fqlResult = $facebook->api($album_param);

print_r($album_fqlResult);

有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2011-12-30 05:25:32

您可以在嵌套查询中执行此操作,而不是作为多查询。

代码语言:javascript
复制
SELECT pid, src_small 
FROM photo 
WHERE pid in (SELECT cover_pid FROM album where owner={page id here})

举个例子,这是我从可口可乐的Facebook主页上得到的专辑封面列表

代码语言:javascript
复制
SELECT pid, src_small 
FROM photo 
WHERE pid in (SELECT cover_pid FROM album where owner=40796308305)
LIMIT 5

返回值:

代码语言:javascript
复制
{
  "data": [
    {
      "pid": "40796308305_2143765",
      "object_id": 110516463305,
      "src_small": "https://fbcdn-photos-a.akamaihd.net/hphotos-ak-snc1/6570_110516463305_40796308305_2143765_6253354_t.jpg"
    },
    {
      "pid": "40796308305_8753877",
      "object_id": "10150500888203306",
      "src_small": "https://fbcdn-photos-a.akamaihd.net/hphotos-ak-ash4/398389_10150500888203306_40796308305_8753877_1814220329_t.jpg"
    },
    {
      "pid": "40796308305_8751674",
      "object_id": "10150500434253306",
      "src_small": "https://fbcdn-photos-a.akamaihd.net/hphotos-ak-ash4/407475_10150500434253306_40796308305_8751674_1040781388_t.jpg"
    },
    {
      "pid": "40796308305_8742570",
      "object_id": "10150498588158306",
      "src_small": "https://fbcdn-photos-a.akamaihd.net/hphotos-ak-ash4/396541_10150498588158306_40796308305_8742570_1378170213_t.jpg"
    },
    {
      "pid": "40796308305_8742259",
      "object_id": "10150498546173306",
      "src_small": "https://fbcdn-photos-a.akamaihd.net/hphotos-ak-snc7/402667_10150498546173306_40796308305_8742259_287537096_t.jpg"
    }
  ]
}

如果你想尝试多查询,那么试着从索引0开始而不是1开始命名查询,例如query0和query1这是C# SDK允许的唯一方式,也许php SDK也需要这样做。

票数 1
EN

Stack Overflow用户

发布于 2011-12-31 00:09:25

终于想明白了。我必须将查询合并到1个变量中并转义单引号。

代码语言:javascript
复制
    $queries = '{

"query1" : "SELECT aid, name, cover_pid FROM album WHERE owner = \'xxxxxxxxxxx\'",

"query2" : "SELECT aid, images FROM photo WHERE pid IN (SELECT cover_pid FROM #query1)"

}';
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8663836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档