使用php将Facebook好友列表导入mysql数据库

时间:2011-03-21 09:36:00

标签: php mysql json facebook

我正在为我的网站构建一个小型Facebook应用程序。使用Facebook好友API,我可以获得用户的朋友列表。现在我想知道他的朋友是否已经是我网站的成员,如果是的话我将他们作为朋友连接到我的网站。

我有一个有两列的用户表:

User id | Facebook id 
---------------------
   8901 |    98764021

我想检查一下facebook提供的所有朋友ID,看看他们是否在我的网站上有用户ID,如果有,请将他们链接为朋友。

我将Facebook好友列表视为JSON格式,可能会达到数千。这是我得到它的形式。

{
    "name": "Chris Anderson",
    "id": "401085912"
}

我如何将其与我的数据库中的MySQL表进行比较。是否可以创建临时表并导入JSON值并进行比较。如果是这样的话?或者如果有更好的方法请建议。请分享您可能拥有的任何示例代码。

2 个答案:

答案 0 :(得分:3)

使用json_decode(),将所有用户的朋友facebook ID放入数组中,然后使用IN SQL关键字:

$facebook_ids = array( 25364646, 2353634646, 2352352335) //example array
$sqlized_ids = implode(', ', $facebook_ids);

$sql_query = 'SELECT user_id FROM user_facebook_table WHERE facebook_id IN ('.$sqlized_ids.')'; 
$friends_in_your_db = $res= mysql_query($sql_query); 

更好的性能:PHP的逻辑,SQL数据和搜索。

答案 1 :(得分:0)

将数组从json对象转换为php数组,并使用表的每个元组检查数组的每个项目。简单。如果你理解了我想说的话那么没关系,否则请回复一下以获得我身边的代码示例。


<强>更新

<?php
$json = '{ "name": "Chris Anderson", "id": "401085912" }';
$arr=new array();
$arr=var_dump(json_decode($json, true));
?>

结果是2d数组。所以现在您可以轻松地将数组内容与从记录中获取的数据进行比较:

$query= "select * from user_details"; //this is the query to pick all data from your table
$res= mysql_query($query);
while($arr_db=mysql_fetch_assoc($res))
{

//compare the current values of the $arr_db with the full $arr array

}