2013-07-17 140 views
1

我有一個名爲朋友的桌子,讓我的朋友在一個php朋友系統中。該表格如下:php朋友系統,顯示我朋友的朋友

friend_id | user_one | user_two 

我的腳本如下顯示我的朋友。

$check_friend_query = mysql_query(" SELECT friends_id from friends WHERE (user_one='$session_user_id' AND user_two ='$user_id') OR (user_one='$user_id' AND user_two='$session_user_id') "); 

if(mysql_num_rows($check_friend_query) == 1 ){ 
     echo" 1st degree friend"; 
} 

我只想要展示第二學位的朋友。我的二級朋友是我朋友的朋友。任何想法如何做到這一點?

回答

0

加入的朋友對自身:

SELECT degree2.* 
FROM friends 
LEFT JOIN friends AS degree2 ON friends.user_two = degree2.user_one 
WHERE friends.user_one = 'original friend'; 

如需進一步度,你只需要添加另一個加盟的水平,例如,

LEFT JOIN friends AS degree3 ON degree2.user_two = degree3.user_one 
LEFT JOIN friends AS degree4 on degree3.user_two = degree4.user_ond 
etc... 
1

您可以運行原始查詢來抓取所有的朋友(就像您擁有的),然後使用其用戶ID作爲變量來查找他們的朋友。

mysql_query("SELECT friends_id from friends WHERE user_one='$user_id'"); 

像這樣的檢查friends_id所有的朋友在那裏的名字是人的user_id

儘管變量有點難以弄清楚,因爲我不知道腳本。

+0

你幫我找到了解決辦法。謝謝你,朋友 ! – user2491321

+0

完全沒問題! – 2013-07-17 15:31:28