Facebook图表-性别信息不能在while循环中检索


Facebook Graph - Gender info can't be retrieved in a while loop

我正在使用Facebook Graph API从Facebook用户列表中获取性别。我有用户的id(他们是我的应用程序的当前用户)。为此,我不需要使用API,因为性别不需要特殊权限(即使我已经获得了基本的信息权限)。基本上,我使用while循环来循环MySQL表上的所有行,该表存储了用户使用应用程序时抓取的FB id。当我在while循环外执行json_decode代码时,它工作得很好(但显然只捕获表中的第一个实例)。然后当我把它放入循环中,页面就是无法加载。它只是坐在那里,试图永远加载。下面是代码:

$sql = "SELECT * FROM fb_id ORDER BY timestamp DESC";
$result = $mysqli->query($sql);                     
while($row = mysqli_fetch_array($result)){
                    $jsonurl = "https://graph.facebook.com/".$row['fb_id'];
                    $json = file_get_contents($jsonurl,0,null,null);
                    $json_output = json_decode($json);
                    $user_gender = $json_output->gender;
                    echo $user_gender;
                    }
                    while($row = mysqli_fetch_array($result)){
                    echo "<a href='http://www.facebook.com/".$row['fb_id']."' target='_blank'><img src='http://graph.facebook.com/".$row['fb_id']."/picture/' /></a>";
                    }

你会看到代码的顶部是性别。底部的循环是显示用户的个人资料图片。底部的循环很好。

知道为什么对Facebook Graph的调用会卡住吗?谢谢!

底部循环显示用户的头像。底部的循环很好。

底部循环也是如此。

知道为什么对Facebook Graph的调用会卡住吗?

Graph API很好,不用担心。

您将在数据库查询结果上循环一次,以获得用户详细信息并回显其性别。

在此之后,DB查询结果结束,没有更多的行需要获取。

这使得第二个while循环的条件在第一次检查时变为false,因此循环内容甚至不执行一次。

你为什么要在那里放第二个while循环呢?您正在访问相同的列值在那里的第一个循环-所以为什么不把两个代码块的内容到一个代码块后的一个 while关键字?