我正在尝试针对应用程序数据库中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朋友列表。
答案 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游戏玩家列表。