0

我不能 100% 确定如何描述这一点,所以这里快速解释一下我在做什么:我有一个网站,人们可以在上面投票赞成或反对“冠军”。这些冠军以 100 点生命值开始。如果您要对特定英雄进行 UP 投票,他们的生命值现在将是 101。DOWN 投票将是 99。

这个网站已经运行了 5 个赛季(有超过 1200 名成员在玩)。所以有很多投票同时进行。现在一切正常。对于下个赛季,我将使用 jQuery/getJSON/ajax 实现“实时”投票(因此每次投票时都不需要刷新页面)。

我现在的工作令人惊叹(实际上我很震惊:P),除了一个小细节......如果“冠军”的生命值降至 1,并且不止一个人同时点击 DOWN VOTE,服务器就会触发它多次关闭,使冠军拥有-1或任何数量的健康。它还插入(到数据库的已淘汰表中)每个在同一时间单击 DOWN 的人作为淘汰该冠军的人。

真的不知道在这里做什么......但我希望我解释得足够好。如果你们需要任何代码,例如将信息插入数据库的 php 文件,甚至是 jQuery 部分,请告诉我!任何帮助将不胜感激!

4

1 回答 1

2

我看到你已经有一些基于这篇文章的代码:link

你可以做的是:

  • 将 UPDATE 函数更改为首先选择用户拥有的健康量。然后只在它实际大于 0 时更新它。如果它小于 1,那么你可以决定将它也设置为 0,以防止与 -1 发​​生事故。如果这仍然是偶然发生的,那么你就把它放回去。但是这个钱非常小。
  • 在对已消除的表执行 INSERT 时,检查该记录是否已存在。如果没有,则插入它。作为附加检查,如果意外发生,您可以删除重复项。这可以防止您让多个人淘汰同一个人(这听起来不可能)。
于 2012-01-17T09:38:47.480 回答