【发布时间】:2016-02-01 15:55:50
【问题描述】:
所以通常我不会要求这样的帮助,所以这是第一次。但是我已经为一个很可能很简单的查询绞尽脑汁两天了。
我想要统计和实际用户打印出我们相互之间的信息,就像 facebook 一样。
我的表格如下。
朋友 编号 | user1_id | user2_id |状态
用户 编号 |第一 |最后
所以我掌握了它背后的简单想法。如果我和某人成为朋友,并且他们也是那个人的朋友,那么那个人就会成为共同的朋友。
我尝试了以下没有实际结果并尝试了许多其他离线示例,坦率地说,我不理解内部连接,因为我很少使用它们,所以如果有人能想出一些东西并可能解释每个这部分可能会帮助我和其他人为未来制定一些计划。
我的会话 ID 在 $user1_id 之下,用户 2 在 $user2_id 之下
感谢任何可以帮助我的人。
$mutual_friends = mysqli_query($mysqli,"
SELECT user.id
FROM user
WHERE EXISTS(
SELECT friends.user1_id, friends.user2_id, friends.status
FROM friends
WHERE friends.user1_id = '$user1_id' AND friends.status = 2
AND friends.user2_id = user.id
)
AND EXISTS(
SELECT friends.user1_id, friends.user2_id, friends.status
FROM friends
WHERE friends.user1_id = '$user2_id' AND friends.status = 2
AND friends.user2_id = user.id
)
");
$mutualfriend=mysqli_fetch_array($mutual_friends);
$mutualfriendcount=mysqli_num_rows($mutual_friends);
The mutual friend count by number
echo"".$mutualfriendcount.";
var_dump($mutual_friends );
while($mutualfriend=mysqli_fetch_array($mutual_friends)){
The list of users by name and id
}
【问题讨论】:
-
我认为您需要一个递归函数,将用户的朋友作为参数发送,然后为您的每个朋友以及他们朋友的朋友等调用它。
-
如:
$user_core = new user_core; $check = $user_core->check_friends(); -
表中的用户id列是数字还是字符数据类型?
标签: php sql mysqli inner-join