我有一个名为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...