【发布时间】:2014-02-14 11:03:27
【问题描述】:
我一直在寻找这个问题的答案,观看了一些视频,但我似乎无法找到一个好的答案。我想在我的网站上建立一个朋友系统。我目前已经建立了一个我认为是正确的多对多系统。我是否应该为每个成员拥有一个包含他们所有朋友的数据库?
但我的主要问题是当我获得所有朋友 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 ;
【问题讨论】:
-
请发布您的数据库架构。
JOIN可能是去这里的方式 -
“我应该每个成员拥有一个数据库” – 什么?当然不是。 // 你应该去了解更多关于使用 SQL 处理数据的基础,因为听起来你现在知道的地方很少。
-
我已经添加了数据库。 CB罗。我确实知道它很愚蠢,但我找不到用一个数据库来做这件事的方法。用户信息位于名为 users 的数据库中,其中包含更多信息,但与此相关的重要性是用户名和 id
标签: php mysql social-networking friend