2013-07-17 230 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