【问题标题】:How to take votes and rank images using PHP and MySQL如何使用 PHP 和 MySQL 对图像进行投票和排名
【发布时间】:2012-09-05 08:55:13
【问题描述】:

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

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

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

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

谢谢。

【问题讨论】:

  • 没什么,我只是在寻求建议。
  • 也许这可以帮助你作为一个起点Building Web Reputation Systems
  • 嗨,约翰,不要灰心,但你之所以被否决,是因为你什么都没尝试。这不是一个真正寻求建议的地方,它是一个在特定问题上寻求帮助的地方。例如“我如何通过 'vote' 列对我的 mysql 查询进行排序”。

标签: php mysql ranking


【解决方案1】:

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

投票:

vote_id INT(11) PK

user_id INT(11)

image_id INT(11)

得分 TINYINT(1)

【讨论】:

    【解决方案2】:

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

    您需要一个数据库。在您的数据库中,您需要存储要排名的每个图像,在名为“图像”的表中执行此操作。在此表中,您将为每个图像提供一个“自动递增”主键。 (这意味着对于您添加到数据库的每个新行,主键将自动比前一行 +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#;
    

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

    【讨论】:

    • 我想要它,以便根据用户对图像的排名(1-5),图像分数增加和减少。
    • 我如何做到这一点,如果用户选择 3,4 或 5,图像投票值会增加 1,但如果他们选择 2 或 1,则会减少 1。
    • 听起来您需要在图像表中添加一个名为“score”的列。这将从0 开始,然后每次用户进行投票时,您要么需要+1 到该列值,要么需要-1 到该值。例如UPDATE images_table SET score_value = score_value-1
    • 我可以将值增加或减少2吗?
    猜你喜欢
    • 1970-01-01
    • 2015-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多