好吧,我正在努力解决这个问题。基本上,除了为每个DIVS添加封面照片外,我的一切都很好。基本上,我有两个使用FQL的查询,下面是我的代码。
$query =
'{"query1":"SELECT aid, cover_pid, name, description FROM album WHERE owner=$fbowner",
"query2":"SELECT src FROM photo WHERE pid IN (SELECT cover_pid FROM #query1)"}';
$fqlResult = $facebook->api(array(
'method' => 'fql.multiquery',
'queries' => $query));
$fql = $fqlResult[0]['fql_result_set'];
$covers = $fqlResult[1]['fql_result_set'];
$the_count = count($fql);
$i = 0;
foreach($fql as $value) {
$album_cover = $value['src'];
echo "<div class='fb_block'>";
echo "<a href='" . $url . "?action=list_pics&aid=" . $value['aid'] . "&album_name=" . $value['name'] . "'>";
echo "<img src='{$covers[$i]['src']}' border='1'>";
echo "</a>";
echo "<h3>".$value['name']."</h3>";
echo "<p>".$value['description']."</p>";
echo "</div>";
$i++;
}
现在这很好,但如果我把这个放在组合中,封面照片都会掉下来,除非我赚$I=1。
$i = 0;
foreach($fql as $value) {
if($value['name'] != 'Wall Photos'){
$album_cover = $value['src'];
echo "<div class='fb_block'>";
echo "<a href='" . $url . "?action=list_pics&aid=" . $value['aid'] . "&album_name=" . $value['name'] . "'>";
echo "<img src='{$covers[$i]['src']}' border='1'>";
echo "</a>";
echo "<h3>".$value['name']."</h3>";
echo "<p>".$value['description']."</p>";
echo "</div>";
$i++;
}
}
如果我在混音中插入另一个foreach,它会抓取所有封面照片并将它们粘贴到每个div中。那么,按照顺序抓取与相册节点相关的封面照片最简单的解决方案是什么?
提前感谢!
我也试过了。不能依赖于这两个查询之间的索引是一致的。
要使其工作,首先修改query2
以返回pid
,然后替换代码中的这一行:
echo "<img src='{$covers[$i]['src']}' border='1'>";
这个:
foreach($covers as $cover) {
if ($value['cover_pid'] === $cover['pid']) {
echo "<img src='{$cover['src']}' border='1'>";
break;
}
}