我试图找到一种有效的方法来显示登录帐户持有人正在关注的人的所有帖子。
有两个关键表:
1-帖子
表名:posts
id
, account_name
,published, body
2-关注
表名:follows
id
, account_name
,followed_name
我正在尝试找到一种方法来显示所有正在关注的帐户中的所有帖子。Posts 和 Follows 之间的联系是Account_name
.
我知道它可能是一个连接,但这是我构造WHERE
子句的方式。到目前为止,我有以下内容(帐户名称是通过 $_SESSION['account_name'] 设置的):
$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 中尝试更新
目前返回NULL,
$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);
}
即使登录的账户已经关注了其他账户,返回的数据目前为 NULL。