如果用户是PHP的朋友,则显示该用户的帖子
我目前正在建立自己的社交网络,我有一个php问题,我不知道如何解决 因此,我的目标是显示用户自己和他的朋友发表的帖子,而如果你不是他们的朋友,他们的帖子将对你隐藏。 我做了很多研究,试图找到答案并实现答案,但我的脚本似乎没有任何效果 我的桌子是这样的: 用户:密钥、id、全名、用户名等 帖子:id、feedusername、作者、feedpost 共享(又名好友):id、userId1、userId2、状态 目前,我正在显示带有while循环的帖子如果用户是PHP的朋友,则显示该用户的帖子,php,mysql,Php,Mysql,我目前正在建立自己的社交网络,我有一个php问题,我不知道如何解决 因此,我的目标是显示用户自己和他的朋友发表的帖子,而如果你不是他们的朋友,他们的帖子将对你隐藏。 我做了很多研究,试图找到答案并实现答案,但我的脚本似乎没有任何效果 我的桌子是这样的: 用户:密钥、id、全名、用户名等 帖子:id、feedusername、作者、feedpost 共享(又名好友):id、userId1、userId2、状态 目前,我正在显示带有while循环的帖子 while($feedarray = mysq
while($feedarray = mysql_fetch_array($search)) {
*I pull the users post data here by using that fetch_array function and echo them out*
}
$search SQL代码如下所示:
$search = mysql_query("SELECT * FROM posts ORDER BY id DESC LIMIT 0,20");
此时,无论您是否与该用户是朋友,都会显示所有帖子。这不是我想要的
那么,我如何显示我自己的帖子和我朋友的帖子呢?如果你与lets不是朋友,那么你如何不向与“a”不是朋友的用户显示“a”发的帖子
换句话说,如果混沌(userId1)是max(userId2)的朋友,并且他们的状态等于2(如果状态等于2,则他们是朋友。如果状态为1,则朋友请求处于挂起状态。)
如何显示我自己的帖子(混乱的帖子)和Max的帖子?然而,如果这个记录不存在或者状态等于1,我将无法看到Max的帖子
希望你明白我的意思,谢谢你抽出时间
谢谢
ChaoticS所以从你所说的话来看,我想获得你自己的帖子将涉及如下内容:
SELECT *
FROM posts
WHERE author = @MyUserId
SELECT userid2
FROM shares
WHERE userid1 = @MyUserId
AND status = 2
所以,考虑到我们现在想要朋友,想想你是如何找回朋友的。它将是这样的:
SELECT *
FROM posts
WHERE author = @MyUserId
SELECT userid2
FROM shares
WHERE userid1 = @MyUserId
AND status = 2
(并且可能必须进行另一个查询来反转userid1/userd2列,具体取决于表的设置方式)。因此,考虑到这一点,这是一个结合两种形式的问题:
SELECT *
FROM posts
WHERE author = @MyUserID
OR author IN (
SELECT userid2
FROM shares
WHERE userid1 = @MyUserId
AND status = 2
)
您可以继续扩展如何使用子选择等,使其更具包容性/排他性,但这将由您决定。如果您仍有问题,请给我留言,我会尽力帮助。p.s.
status
还可以包含哪些值?假设这是一个int,使用一个或可能只是一个。状态应该只包含1或2。谢谢你!目前我正试图在我的代码中实现这一点,它会显示我的好友帖子,但是,我似乎看不到我自己的帖子。@ChaoticS:那么,你是如何检索自己的帖子的呢?我假设你知道查看页面的人的ID,所以匹配作者是他们自己的。一旦完成,它将在(…)中添加一个或作者,并将他们的朋友返回。注意:userId1是请求友谊的人,userId2是接受或拒绝此请求的人。@ChaoticS:这是我插入括号的注释,您可能需要反转哪个是check列,哪个是return列。