2012-01-17 8 views
0

私はこのことを100%確実に説明しているわけではないので、ここでは私が何をしているのかを簡単に説明します。これらのチャンピオンは100人の健康状態から始まります。あなたが特定のチャンピオンに投票した場合、彼らの健康状態は101になります。DOWN投票は99になります。異なるユーザーからの複数の同時投票の防止

このサイトは現在5シーズン(1200人以上のメンバーが遊んでいます)で稼動しています。一度に多くの投票が行われています。それは今すべてうまく動作します。この次のシーズンには、jQuery/getJSON/ajaxを使った "リアルタイム"投票を実装しています(投票するたびにページを更新する必要はありません)。

「チャンピオン」が1人の健康状態にあり、複数の人が同時にダウン投票をクリックすると、私はこれが今すぐ素晴らしい(実際はショックを受けています:P)サーバはそれを複数回鳴らして、チャンピオンに-1または何らかの健康状態を持たせる。また、そのチャンピオンを削除した人と同時にDOWNをクリックした人を(データベースの削除されたテーブルに)挿入します。

ここで何をすべきかわかりません...しかし、私はこれを十分に説明してくれることを願っています。データベースやjQueryパーツに情報を挿入するPHPファイルなどのコードが必要な場合は、私にお知らせください!どんな助けでも大歓迎です!

+0

重複票を防止する必要がありますか? –

+0

MyISAMエンジンまたはInnoDBエンジンを使用していますか? –

+0

私はあなたがそれを言うことができると思いますが、それは一人から重複した投票ではありません。複数のユーザーが同じ操作を同時に実行してから、1人のユーザーではなくすべてのユーザーが削除されたことになります。 – Nate

答えて

2

この投稿に基づいたコードが既にあります。link。あなたは何ができるか

は次のとおりです。

  • 変更UPDATE機能最初のユーザーが持っている健康の量を選択します。実際に0より大きい場合にのみ更新します.< 1の場合、-1で事故を防ぐために0に設定することもできます。それがまだ偶然起こった場合は、それを元に戻します。しかし、その響きは非常に小さいです。
  • 削除されたテーブルにINSERTを実行するときに、そのレコードが既にそこに存在していないかどうかを確認します。そうでない場合は、それを挿入します。重大な事態が発生した場合は、重複を取り除くことができます。これにより、複数の人が同じ人物を排除することができなくなります(これは不可能です)。
+0

返信いただきありがとうございます!はい、その最後の質問は感謝して解決しました:)私は多くのコードを追加しました。私はすでにあなたの最初の提案をしていますが、INSERTの提案ではありません、私はこれを試し、あなたに戻ってきます(明日かもしれません) – Nate

+0

ありがとうございました:) – Nate

関連する問題