Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果用户是PHP的朋友,则显示该用户的帖子_Php_Mysql - Fatal编程技术网

如果用户是PHP的朋友,则显示该用户的帖子

如果用户是PHP的朋友,则显示该用户的帖子,php,mysql,Php,Mysql,我目前正在建立自己的社交网络,我有一个php问题,我不知道如何解决 因此,我的目标是显示用户自己和他的朋友发表的帖子,而如果你不是他们的朋友,他们的帖子将对你隐藏。 我做了很多研究,试图找到答案并实现答案,但我的脚本似乎没有任何效果 我的桌子是这样的: 用户:密钥、id、全名、用户名等 帖子:id、feedusername、作者、feedpost 共享(又名好友):id、userId1、userId2、状态 目前,我正在显示带有while循环的帖子 while($feedarray = mysq

我目前正在建立自己的社交网络,我有一个php问题,我不知道如何解决

因此,我的目标是显示用户自己和他的朋友发表的帖子,而如果你不是他们的朋友,他们的帖子将对你隐藏。 我做了很多研究,试图找到答案并实现答案,但我的脚本似乎没有任何效果

我的桌子是这样的:

用户:密钥、id、全名、用户名等

帖子:id、feedusername、作者、feedpost

共享(又名好友):id、userId1、userId2、状态

目前,我正在显示带有while循环的帖子

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列。