我正在尝试获取用户喜欢显示的所有帖子,而不是所有帖子。
我有如下数据库表:
likes(列(int):likeid,likeby,likeon)
文章(列:posted、postby、text、likecount)
用户(列:userid、username)
下面是我的代码,用于获取用户喜欢的帖子(目前它获取数据库中所有喜欢的帖子,而不是用户喜欢的帖子)
public function likes($user_id, $num){
$stmt = $this->pdo->prepare("SELECT * FROM `likes`, `posts`, `users` WHERE `likeOn` = `userID` and `user_id` = `postBy` ORDER BY `likeOn` DESC");
$stmt->bindParam(":num", $num, PDO::PARAM_INT);
$stmt->execute();
$tweets = $stmt->fetchAll(PDO::FETCH_OBJ);
关于如何获得用户喜欢的帖子而不是所有喜欢的帖子,有什么想法吗?
3条答案
按热度按时间vd8tlhqk1#
我想上面的查询对你有用,在mysql数据库中试试吧。
inkz8wg92#
正如其他人在评论中所说的那样,您的模式没有以适当的方式构建表之间的牢固关系。
但是,考虑到您当前的结构(并且假设您正在更新likes计数,posts.postby包含用户id),您可以尝试以下操作:
如果您只需要post,并且用户id包含在post行中,则不需要联接不同的表。
c3frrgcw3#
我想这会管用的。
我更改了您的查询,因此语句将返回post和like以及内部连接
编辑:从查询中删除用户表,因为用户标识allready存在于like表(likeby)中。