こんにちは、私のコードを見ていただきありがとうございます!
2人のユーザーが同時に2つのフォームを送信すると、問題に直面しています。詳しく説明してみます。
私のフォームは 3 つのユーザー値を更新する必要があります。
私のphp:
<?php
set_time_limit(60);
if (isset($_POST['submit-buy'])) {
$buy_id = $_POST['buy_id'];
$buyer_id = $_POST['buyer_id'];
$buy_value = $_POST['buy_value'];
$owner_id = $_POST['owner_id'];
// more function goes here and returns value below i am also using if else to check if any value change it gives error msg to slow down
// $petvalue = 100000;
// $pet_earn = 5500;
// $check_petcash = 10000000;
// $pet_newvalue = 110000;
// $pet_updateoid = 1;
// $pettobuy = 2;
// first
$check_petcash = $pet_user->cash; //checking before updating
$pet_newcash = round($check_petcash + $pet_earn); // pet new cash
$upet_newvalue = mysql_query("UPDATE members SET value='$pet_newvalue', cash='$pet_newcash', ownerid='$pet_updateoid' WHERE id='$pettobuy'");
// second
// $old_owner = 3;
$ex_owner_cash = $oldowner->cash; //checking before updating
$ex_owner_newcash = round($ex_owner_cash + $petvalue + $pet_earn); // old owner cash
$update_newcash = mysql_query("UPDATE members SET cash='$ex_owner_newcash' WHERE id='$old_owner'");
// and last
// $pet_buyvalue = 120000;
// $user_id = 1;
$new_user_cash = $new_owner->cash; //checking before updating
$new_ownercash = round($new_user_cash - ($pet_buyvalue - $pet_earn)); // user cash
$upadte_ownercash = mysql_query("UPDATE members SET cash='$new_ownercash' WHERE id='$user_id'");
$msg = '<span id="other-info-font">You bought pet yay!</span><br/>';
}
?>
主な問題は、2 人のユーザーが同時にフォームを送信し、1 人が高速ネットを使用し、もう 1 人がそうでない場合に発生します。いつか $new_ownercashをカットします。1 番目と 2 番目のクエリのみが更新され、3 番目のクエリは変更されないままになるか、他のユーザーがフォームを送信すると (2 番目と 3 番目のクエリですべての計算がうまくいかないことを意味します)。私は多くのユーザーを抱えており、ゲームの購入と販売を行っています。ベータ テストを行っているため、まだ修正する時間があります。
すべてのユーザーが同時にゲームをプレイすると、すべてが台無しになります。私はこれが初めてなので、手がかりです。
ありがとう