我正在为我的网站构建一个小型Facebook应用程序。使用Facebook好友API,我可以获得用户的朋友列表。现在我想知道他的朋友是否已经是我网站的成员,如果是的话我将他们作为朋友连接到我的网站。
我有一个有两列的用户表:
User id | Facebook id
---------------------
8901 | 98764021
我想检查一下facebook提供的所有朋友ID,看看他们是否在我的网站上有用户ID,如果有,请将他们链接为朋友。
我将Facebook好友列表视为JSON格式,可能会达到数千。这是我得到它的形式。
{
"name": "Chris Anderson",
"id": "401085912"
}
我如何将其与我的数据库中的MySQL表进行比较。是否可以创建临时表并导入JSON值并进行比较。如果是这样的话?或者如果有更好的方法请建议。请分享您可能拥有的任何示例代码。
答案 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
}