喜欢来自phpacademy的按钮

时间:2013-09-13 16:01:30

标签: php mysql sql sql-like

我最近一直在研究标题。现在我最终创建了像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

1 个答案:

答案 0 :(得分:2)

这是你应该做的。

您有users表,其中包含以下信息

id - 这是用户的唯一ID,应将其标记为主键。自动递增。

在用户上保留您想要的任何其他信息,可能是nameemail等。

你有一个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_*访问权限,请至少更改为PDOPDO是建议的方式,如果你不打算使用一个框架来提供所有这些。