我的SQL代码有问题。我正在尝试使用PDO创建像facebook这样的新闻源。我的问题是,我能想到的最好的是它拉动了用户的所有帖子,而不是我自己的帖子。似乎无法找到问题。
继承数据库结构:
user_table:user_id, username, name
帖子:post_id, body, user_id, likes
粉丝:id, user_id, follower_id
连接脚本:
class DB {
private static function connect() {
$pdo = new PDO ('mysql:host=localhost;dbname=test;charset=utf8','root','');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $pdo;
}
public static function query($query, $params = array()) {
$statement = self::connect()->prepare($query);
$statement->execute($params);
if (explode(' ', $query)[0] == 'SELECT') {
$data = $statement->fetchAll();
return $data;
}
}
}
?>`
用于提取帖子的脚本:
$posts = DB::query('SELECT posts.post_id, posts.body, posts.likes, users_table.`username`, users_table.`name` FROM users_table, posts, followers
WHERE posts.user_id = followers.user_id
AND users_table.user_id = posts.user_id
AND follower_id = :userid
ORDER BY posts.posted_at DESC', array(':userid'=>$userid));
有什么想法吗?一直在互联网上寻找解决方案,似乎无法找到我们正在寻找的东西。
答案 0 :(得分:0)
因为您只按照
中的说明选择了关注者的帖子WHERE posts.user_id = followers.user_id
所以,你可以改变那条线,
WHERE posts.user_id = followers.user_id or posts.user_id = user.user_id
user.user_id
指的是您自己的ID
。
答案 1 :(得分:0)
此问题的最佳解决方案是让当前用户自行关注以获取自己的帖子并显示在当前用户的新闻源上。