我正在建立一个社区网站,我将其添加为朋友的功能。
现在我的朋友表看起来像这样
+----+---------+-------+
| id | ppl_1 | ppl_2 |
+----+---------+-------+
| 1 | 5 | 7 |
| 2 | 13 | 5 |
+----+---------+-------+
id is simply the autoincrement field.
ppl_1 is one user's id
ppl_2 is another user's id
现在考虑我是id为5的用户。我想看看我的朋友列表。我如何能够解决这个问题,因为我的ID可以在ppl_1
或ppl_2
之间的任何位置。那么我必须运行2个查询来检查吗?这将是糟糕的我想考虑网站的性能..或者我是否必须在一个查询中做一些事情以检查两种方式?
考虑$me = $_SESSION['id'] ;
有人在这里向我展示一些亮点吗?
答案 0 :(得分:0)
如果您重命名表格中的ppl_1和ppl_2列,以便更好地反映其实际含义,它会对您有所帮助。
你可以为他们命名像朋友一样的东西。和' befriended_by'
然后你会执行一个连接:
SELECT befriended_by
FROM user
INNER JOIN [name of your table above]
ON user.id = friend
WHERE user.id = [:id, please use parameterised queries to insert your $_SESSION['id'] here or some other sane method to prevent sql injection attacks ]
那就是它。