我正在尝试构建一个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#;
希望这对你有所帮助。:)如果你被卡住了,回来再问一次。