我正在尝试构建一个php排名系统,用户可以按照1-5的等级对图像进行排名。
取决于图像的排名方式决定其在排行榜上的位置(排名编号)。排名应根据用户收到的不同评分而变化。
这方面的一个例子是排名系统。 http://www.newgrounds.com/portal/view/601966(右侧,页面下方。)
我只是在寻找能够帮助我实现这一目标的任何信息。
感谢。
答案 0 :(得分:1)
创建一个名为votes的表并将其绑定到images表:
评价:
vote_id INT(11)PK
user_id INT(11)
image_id INT(11)
得分TINYINT(1)
答案 1 :(得分:1)
以下是您需要了解的一些事项:
您需要一个数据库。在您的数据库中,您需要存储您正在排名的每个图像,在名为“images”的表中执行此操作。在此表中,您将为每个图像提供“自动递增”主键。 (这意味着对于添加到数据库的每个新行,主键将自动从之前的行开始+1)。这意味着每个图像旁边都有一个UNIQUE行号 - 标识该特定行。请拨打此列id
。 (我们将在image_id
列中的其他表中引用它。)
接下来,您需要一个名为“投票”的表格。在此表中,您可以存储您可能需要的各种信息,但您只需要存储的是“images”表中的唯一图像编号以及某人投票的值。你最终会得到这样的东西:
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#;
希望这会对你有所帮助。 :)如果你遇到困难,请再次询问。