我一直在寻找这个观看了几个视频的答案,但我似乎无法找到一个好的答案。我想在我的网站上建立一个朋友系统。我目前设置了多个系统,我认为是对的。我应该每个成员有一个包含他们所有朋友的数据库吗?
但我的主要问题是当我得到所有的朋友ID。我怎么得到他们的名字?我可以使用它为每个成员连接一次数据库。
<?php foreach ($friend as $person) {
friend_names[] = mysqli_query($con, "SELECT username FROM users WHERE id='$person'");
} ?>
但是在一个查询中没有更简单的方法来完成所有操作。我已经尝试使用不同的连接,但随后它写下数据库中的所有名称,而不仅仅是已登录的用户朋友。所以我必须为每个包含朋友ID的成员使用一个数据库。而且当我使用
时SELECT users.username
FROM relationships
INNER JOIN users ON relationships.user_1 = users.id
它也添加了我的用户名。任何人都可以解释我应该怎么做。所以我不必坐在youtube上听人们解释一个函数是如何工作的:S?
关系数据库
CREATE TABLE IF NOT EXISTS `relationships` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_1` int(11) NOT NULL,
`user_2` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
答案 0 :(得分:0)
select users.username
from relationships
inner join users on relationships.user_2=users.id
and relationships.user_1=2;
您需要在数据库中使用它。您只需使用会话用户ID更改末尾的代码(relationships.user_1 = 2):)
编辑: 在一个查询中获取所有内容。我还为状态添加了一行(阻止,朋友,待处理请求):
SELECT users.username
FROM relationships
INNER JOIN users ON ((relationships.user_1 = users.id AND relationships.user_2='$user')
or (relationships.user_2 = users.id AND relationships.user_1='$user'))
and relationships.status=1