2012-06-06 36 views
1

我使用圖表api檢索朋友列表,並在MySQL表中列出用戶列表。我(有點)知道如何使用連接,但我不知道如何將PHP中的數組與MySQL表進行比較。基本上Facebook的ID就是我想要匹配的,然後如果匹配的話就從該行中抽取所有的數據。將Facebook列表中的朋友列表與MySQL表進行比較

感謝, 邁克爾·阿米奇

回答

2
$sql = mysql_query("SELECT * FROM users WHERE fb_id IN (12345,1234,123,12346)"); 

while($row = mysql_fetch_array($sql)){ 
    echo $row['username']; 
} 

注意:請確保您在持有Facebook的ID的列中添加索引。

+0

OK看起來不錯,但事情是,如果我有在Facebook上600周的朋友和我的數據庫表只有那些朋友13,我插上所有的600到查詢,所有這些空選擇會發生什麼? – michaela

+0

什麼也沒有:)它不會顯示結果。如果您有600個用戶中有6個,則會有6個結果行。 – AustinAllover

1
$array_with_ids = array('123', '124', '125'); 
$sql_ids = implode(',', $array_with_ids); 

// Select friends already added to db 
mysql_query("SELECT * FROM fb_users WHERE fb_id IN (".$sql_ids.")"); 

// Find friends, that are in your db, but not in the array 
mysql_query("SELECT * FROM fb_users WHERE fb_id NOT IN (".$sql_ids.")"); 

foreach($array_with_ids AS $fb_id) 
{ 
    // Add new friends 
    mysql_query("INSERT IGNORE INTO fb_users VALUES (".$fb_id.", ".$name.", ".$stuff.")"; 
} 

請務必使用一個主索引fb_id

+0

太棒了!真的很好的代碼... – michaela

+0

不,只是快速和骯髒的方法。 :-) – Oliver