如何使用PHP和MySQL对图像进行投票和排名


How to take votes and rank images using PHP and MySQL

我正在尝试构建一个php排名系统,用户可以在该系统中对图像进行1-5的排名。

根据图片的排名决定其在排行榜上的位置(排名号)。排名应根据用户对其的不同评分而变化。

这里的排名系统就是一个例子。http://www.newgrounds.com/portal/view/601966(右手边,向下翻页。)

我只是在寻找任何能帮助我实现这一目标的信息。

谢谢。

创建一个名为votes的表,并将其绑定到您的图像表:

投票:

vote_id INT(11)PK

user_id INT(11)

image_id INT(11)

得分TINYINT(1)

以下是您需要了解的一些内容:

你需要一个数据库。在你的数据库中,你需要存储你正在排名的每个图像,在一个名为"图像"的表中这样做。在该表中,您将为每个图像提供一个"自动递增"主键。(这意味着,对于添加到数据库中的每一个新行,主键都将自动为前一行的+1)。这意味着每个图像旁边都有一个唯一的行号,用于标识特定的行。将此列称为id。(我们将在image_id列的其他表中引用它)。

接下来你需要一张名为"投票"的表格。在这个表中,你可以存储你可能需要的各种信息,但你只需要存储"图像"表中的唯一图像编号和某人投票的值。你最终会得到这样的东西:

image_id | vote_value
1        | 3
2        | 5
1        | 3
4        | 1
4        | 3

现在,您可以查询此信息以获取排行榜。查询可能看起来像这样:

SELECT image_id, SUM(vote_value) AS rank FROM votes GROUP BY image_id ORDER_BY rank;

这将为您提供一个按级别排序的"image_id"列表(即所有选票的总数)。

然后,您可以返回到图像表,并从该表中获取该图像的信息。

SELECT name, url FROM images WHERE id=#image_id we got above#;

希望这对你有所帮助。:)如果你被卡住了,回来再问一次。