1

我有一个名为friends 的表,将我的朋友保存在一个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";
}

我想要的只是展示二级朋友。我的二年级朋友是我朋友的朋友。知道怎么做吗?

4

2 回答 2

1

您可以运行一个原始查询来获取您所有的朋友(就像您拥有的那样),然后另一个以使用他们的用户 ID 作为要查找的变量来查找他们的朋友。

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

像这样的东西会检查friends_id名字是这个user_id人的所有朋友。

虽然变量有点难以弄清楚,因为我不知道脚本。

于 2013-07-17T15:04:58.193 回答
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...
于 2013-07-17T15:02:38.110 回答