1

I have been working on the header recently. Now I'm end up to create some likes button like Facebook do.

I'm following the PHPacademy on Youtube. The one who's called Alex is really awesome to share what his idea is.

The problem is, I can't show the user name and the product name which to be liked

This is my query:

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());
}

I know what I am doing wrong just on my query, but ahh... When I'm using the SQL in MySQL all works so well:

SELECT `fullname` FROM `users` WHERE `user_id` = 1

And that query can show me what is the username with the user_id 1 I hope that I can put that username from users table into likes table

4

1 回答 1

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但是,如果您不打算使用能够为您提供所有这些功能的框架,那么建议您这样做。

于 2013-09-13T16:17:07.363 回答