-3

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

根据图像的排名方式决定它在排行榜上的位置(排名编号)。排名应该根据从用户那里收到的不同评级而变化。

这方面的一个例子是这里的排名系统。http://www.newgrounds.com/portal/view/601966(右侧,页面下方。)

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

谢谢。

4

2 回答 2

1

以下是您需要了解的一些事项:

你需要一个数据库。在您的数据库中,您需要存储要排名的每个图像,在名为“图像”的表中执行此操作。在此表中,您将为每个图像提供一个“自动递增”主键。(这意味着对于您添加到数据库的每个新行,主键将自动比前一行 +1)。这意味着每个图像旁边都有一个唯一的行号 - 标识该特定行。打电话给这个专栏id。(我们将在列中的其他表格中引用它image_id)。

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

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#;

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

于 2012-09-05T09:07:35.590 回答
1

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

投票:

vote_id INT(11) PK

user_id INT(11)

image_id INT(11)

评分 TINYINT(1)

于 2012-09-05T08:59:27.453 回答