Php SQL:从追随者中选择所有帖子
我试图找到一个有效的方式来显示所有的人谁正在被登录帐户持有人跟踪帖子 有两个关键表: 1-员额 表名:员额 id、帐户名称、已发布、正文 2-如下 表名:如下 id、帐户名、后接帐户名 我正试图找到一种方法,我可以显示所有被跟踪的帐户中的所有帖子。Posts和follow之间的连接是帐户名 我知道它可能是一个连接,但这是我构造WHERE子句的方式。到目前为止,我有以下帐户名是通过$\u会话['account\u name']设置的:Php SQL:从追随者中选择所有帖子,php,sql,pdo,mysqli,Php,Sql,Pdo,Mysqli,我试图找到一个有效的方式来显示所有的人谁正在被登录帐户持有人跟踪帖子 有两个关键表: 1-员额 表名:员额 id、帐户名称、已发布、正文 2-如下 表名:如下 id、帐户名、后接帐户名 我正试图找到一种方法,我可以显示所有被跟踪的帐户中的所有帖子。Posts和follow之间的连接是帐户名 我知道它可能是一个连接,但这是我构造WHERE子句的方式。到目前为止,我有以下帐户名是通过$\u会话['account\u name']设置的: $sql = "SELECT * FROM posts LEF
$sql = "SELECT * FROM posts LEFT JOIN follows ON posts.account_name = follows.account_name WHERE --- How would I only get the posts from the accounts being followed ?---"
我确信这是一件很简单的事情,我的大脑感到筋疲力尽,我似乎无法解决它
在PDO中尝试更新
此时返回空值
$sql = "SELECT * FROM share_posts WHERE account_name IN (SELECT followed_name FROM $this->account_follows WHERE account_name = :account_name)";
return $this->AC->Database->select($sql, array('account_name' => $account_name));
将转到我的数据库类:
public function select($sql, $array = array(), $fetch_mode = PDO::FETCH_ASSOC)
{
$stmt = $this->AC->PDO->prepare($sql);
foreach ($array as $key => $value)
{
$stmt->bindValue("$key", $value);
}
$stmt->execute();
return $stmt->fetchALL($fetch_mode);
}
此时返回的数据为空,即使登录的帐户已跟随其他帐户
$account = $_SESSION['account_name'];
//do some sql injection checking on $account here
$sql = "SELECT * FROM posts WHERE account_name IN (SELECT followed_name FROM follows WHERE account_name='".$account."')";
这将获得帐户名与您关注的人匹配的所有帖子。我不确定谁在跟踪谁,但在本例中,跟踪的名称是跟踪的人员帐户名称。如果情况正好相反,请切换值
$sql = "SELECT * FROM posts WHERE account_name IN (SELECT account_name FROM follows WHERE followed_name='".$account."')";
这将获得帐户名与您关注的人匹配的所有帖子。我不确定谁在跟踪谁,但在本例中,跟踪的名称是跟踪的人员帐户名称。如果情况正好相反,请切换值
$sql = "SELECT * FROM posts WHERE account_name IN (SELECT account_name FROM follows WHERE followed_name='".$account."')";
我将按照我对你问题的理解来写这篇文章 您需要做的是只从您登录的用户后面的用户中选择帖子 要对此进行分解,首先要选择用户,然后选择登录用户。为此,我们使用下表 然后,我们希望选择这些用户的帖子。因此,我的问题是这样的
SELECT posts.* FROM follows
LEFT JOIN posts ON posts.account_name = follows.follows_name
WHERE follows.account_name = $logged_in_user
我将按照我对你问题的理解来写这篇文章 您需要做的是只从您登录的用户后面的用户中选择帖子 要对此进行分解,首先要选择用户,然后选择登录用户。为此,我们使用下表 然后,我们希望选择这些用户的帖子。因此,我的问题是这样的
SELECT posts.* FROM follows
LEFT JOIN posts ON posts.account_name = follows.follows_name
WHERE follows.account_name = $logged_in_user
你能澄清一下,是帐户名跟在后面,还是帐户名跟在后面?谁跟在那个表中的谁后面?没有WHERE子句,你的查询有什么问题?@pburges account\u name是登录帐户,后面的\u名称是被跟在后面的帐户。。。因此,账户名称如下_name@LeeMarshall我相信我下面的答案会回答你的问题。嗨@pburges我更新了我的问题,在测试了它不返回空值之后,但是我如何才能让帐户名/帐户持有人在下面的帖子中获得他的帖子?谢谢您的时间。您能澄清一下,是帐户名跟在后面的帐户名后面,还是后面的帐户名跟在后面的帐户名跟在那个表中的谁后面?没有WHERE子句,您的查询有什么问题吗?@pburges account\u name是登录帐户,后面的帐户名就是被跟踪的帐户。。。因此,账户名称如下_name@LeeMarshall我相信我下面的答案会回答你的问题。嗨@pburges我更新了我的问题,在测试了它不返回空值之后,但是我如何才能让帐户名/帐户持有人在下面的帖子中获得他的帖子?谢谢你抽出时间。