Facebook好友的搜索列表

时间:2014-01-25 15:03:22

标签: php mysql facebook list codeigniter

我正在尝试针对应用程序数据库中gamers表中的条目搜索用户的Facebook好友列表。

gamers表格看起来像id, name, points。例如。 g_id-234567,name-john Smith,point-45。在此表中,一个人的id实际上是他们的Facebook ID。

我在我的Codeigniter应用程序中使用以下代码和Facebook php sdk返回登录用户的朋友列表。

$friends = $facebook->api('/me/friends');

 foreach ($friends["data"] as $value) {

                echo $value['id'];
}

此代码位于我的控制器的index功能中,并成功回显了登录用户的所有朋友的ID。

如何检查我的任何Facebook好友id是否与我g_id表格中任何游戏玩家gamers的匹配。

我希望获得gamers谁是我的Facebook好友列表,并按照限制为20的点数降序排列此列表。这是为了获得前20位Facebook好友游戏玩家。

我想在我的视图中使用登录用户的前20名Faccebook朋友列表。

1 个答案:

答案 0 :(得分:1)

试试这个(如果你使用的是mysqli)

    $id = -1;
    $list = array();
    $stmt = $mysqli->prepare("SELECT  * FROM gamers where id = ? ORDER BY points DESC LIMIT 20");
    $stmt->bind_param("i", $id);
    foreach($friends["data"] as $value) {
          $id = $value['id'];  
          $stmt->execute();
          $res = $stmt->get_result();
          array_push($list,$res->fetch_row());
     }

我希望,$list应该包含所有Facebook游戏玩家的列表。

或者,您可以使用:

     $friends_set = '(';
     foreach($friends["data"] as $value) {
         $friends_set .= $value['id'].','; 
     }
     $new_set = preg_replace('/,$/',')',$friends_set);
     $res = mysql_query("SELECT * from gamers WHERE id IN $new_set ORDER BY points DESC LIMIT 20");
     while($row = mysql_fetch_array($res,MYSQLI_ASSOC) {
          //do your stuff
      }

在最后一个循环中你可以浏览facebook游戏玩家列表。