php好友系统,显示好友的好友


php friend system, display friends of my friends

我有一个名为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";
}

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

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

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

类似这样的操作会检查所有朋友的friends_id,其中名称是该人的user_id

虽然变量有点难以理解,因为我不知道脚本。

加入反对自己的朋友:

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...