我最近一直在研究标题。现在我最终创建了像Facebook一样的喜欢按钮。
我在Youtube上关注PHPacademy。那个叫亚历克斯的人真的很棒,可以分享他的想法。
问题是,我无法显示用户名和喜欢的产品名称
这是我的疑问:
function plus_the_like($meal_id) {
$meal_id = (int)$meal_id;
$user_name = mysql_query("SELECT `fullname` FROM `users` WHERE `user_id` = (".$_SESSION['user_id'].")");
mysql_query("UPDATE `meal` SET `likes_meter` = `likes_meter` + 1 WHERE `meal_id` = $meal_id");
mysql_query("INSERT INTO `likes` (`user_id`,`user_name`, `meal_id`) VALUES (".$_SESSION['user_id'].", $user_name, $meal_id)") or die(mysql_error());
}
我知道我在查询时做错了什么,但是啊...当我在MySQL中使用SQL时,一切运行良好:
SELECT `fullname` FROM `users` WHERE `user_id` = 1
该查询可以显示user_id 1的用户名是什么
我希望我可以将users
表中的用户名放入likes
表
答案 0 :(得分:2)
这是你应该做的。
您有users
表,其中包含以下信息
id
- 这是用户的唯一ID,应将其标记为主键。自动递增。
在用户上保留您想要的任何其他信息,可能是name
,email
等。
你有一个articles
表(或者你喜欢的任何表)。
id
- 这是文章的唯一ID,应将其标记为主键。自动递增。
在论文中存储您想要的任何信息,或在商店中存储您想要“喜欢”的任何内容。
你有一个likes
表。
id
- 这是类似的唯一ID,应将其标记为主键。自动递增。
user_id
- 这是用户点击类似按钮的唯一ID,应标记为外键。
article_id
- 这是“喜欢”的文章的唯一ID,应标记为外键。
有了这个,每当用户“喜欢”一篇文章时,你就会有一个像
这样的查询INSERT INTO likes (user_id, article_id) VALUES (:userID, :articleID);
并计算给定文章中的喜欢数量,您可以执行类似
的操作SELECT count (user_id) FROM likes WHERE article_id = :articleID;
这将允许您跟踪每篇文章的喜欢次数,以及每个用户喜欢的内容。潜在地,您最终可以根据用户的喜好向用户提出建议。但是,这还有很多工作要做。
这是您尝试完成的基本版本。正如评论中的人所说,请考虑正确清理数据库输入。如果没有其他内容,如果您没有my_sqli_*
访问权限,请至少更改为PDO
。 PDO
是建议的方式,如果你不打算使用一个框架来提供所有这些。