我有两个 mysql 表 members_tbl 和 post_tbl
members_tbl:
id|用户名 |fname |lname |friendArray
post_tbl:
邮编| 内存ID | thePost |发布日期
现在,我正在尝试显示来自用户 ID 和他的friendArray 的帖子。请让我知道该怎么做(对php还是新手)
由于 MySQL 缺少一个explode
函数,您要么需要创建一个关系表并使用连接,要么使用多个查询并在其间使用 php 处理。我强烈推荐关系方法,因为它比替代方法更符合数据库标准(规范化)并且更容易实现。
你需要第三张表,它描述了两个朋友之间的关系,IE
friends_tbl
user1_id | user2_id
使用主键user1_id
和user2_id
(从而防止重复)。对于每一个好友关系,IE 用户 1 与用户 2 是好友,此表只有一行。然后,您可以使用以下查询获取所需的列表。
SELECT p.*, u.*
FROM posts_tbl p
INNER JOIN members_tbl u
ON u.id = p.memId
WHERE u.id IN (
SELECT user2_id AS id
FROM friends_tbl
INNER JOIN members_tbl
ON (user1_id = id)
WHERE members_tbl.id = $id
UNION
SELECT user1_id AS id
FROM friends_tbl
INNER JOIN members_tbl
ON (user2_id = id)
WHERE members_tbl.id = $id
)
ORDER BY p.postDate
为你的朋友关系创建一个不同的表,然后在你的 SQL 中加入这个表。