如何从我关注的人和php和mysql中的帖子中获取帖子?

时间:2017-11-01 05:20:17

标签: php mysql

我有桌子

  1. 答案(援助,user_id,...) - 帖子表

  2. 用户(userid,name,...)

  3. 粉丝(user_one,user_two) - 其中user_one是关注者,user_two是跟随者。
  4. 我需要在我的家庭Feed中使用php和mysql显示我关注的人和帖子的帖子。但目前它没有按预期工作。每个帖子显示7次。

    curent select query

    <?php
    
        $my_id = $_SESSION['user_id'];
         $sql_query = "SELECT * FROM answers left join users on users.userid = answers.user_id LEFT join followers on followers.user_one = answers.user_id WHERE answers.user_id= '$my_id' ORDER BY answers.date_created DESC";  
    ?>
    

2 个答案:

答案 0 :(得分:1)

没看到你也想要回复你的帖子。试试下面的sql:

     select * from answers, users, (select user_one user_id from followers where user_two='$my_id' union select '$my_id' user_id) a where answers.user_id=users.user_id and answers.user_id=a.user_id;

你的sql中有错误:SELECT * FROM回答在users.userid = answers.user_id上的左连接用户LEFT加入关注者关注者.user_one = answers.user_id WHERE answers.user_id ='$ my_id'ORDER BY answers.date_created DESC”。

第二个左连接应该是followers.user_two = ansers.user_id,where语句应该是followers.user_one ='$ my_id';

答案 1 :(得分:0)

此处的一个选项是将您的查询短语为两个查询的并集。下面的工会的前半部分查找您关注的人发布的所有帖子。工会的后半部分找到了你的所有帖子。

SELECT a.*
FROM answers a
INNER JOIN followers f
    ON (a.user_id = f.user_two AND f.user_one = $my_id)
UNION ALL
SELECT a.* FROM answers WHERE user_id = $my_id;

我不是PHP人员,但希望您可以轻松地将上述查询调整到您的代码中。