ユーザーのxp値が彼のレベルの最大xpより大きいかどうかを確認して、経験値バーが値を適切に更新しようとしています。私はこのコード複数の条件に基づいてフィールドを更新する
$sql1 = "UPDATE progression SET xp=(xp + 2) WHERE username='$username'";
によって価値を高めています。そして、私はXPの値が今の最大のXPよりも高い場合は、データベースにチェックしたいと思いますし、それがXPを取るある場合 - 最大XPを。これはプレーヤーが98%xpなどで10%xpを得た場合、次のレベルで8%に更新する必要があります(次のレベルでは最大xpの増加がない場合)。私はこのようなものが欲しいですが、これはうまくいかないようです。
$sql2 = "UPDATE if xp > maxxp SET xp=(xp - maxxp) WHERE username='$username'";
これは、 'if'がmysqlでどのように動作するかではありません。しかし、 'WHERE'セクションに別の条件を追加することができます。 – jeroen
あなたが比較したいのであれば、なぜあなたはUPDATEを使用していますか?あなたはSELECTを実行する必要があるので、それはどこですか? –
* "プレイヤーが98%xpなどで10%XPを取得した場合、次のレベルで8%に更新する必要があります" * - これは最初の場所。ほとんどのシステムでは、獲得した経験ポイントの合計数が記録されます。追加の経験は、単にその合計を増分します。レベルやパーセンテージなどの情報を次のレベルに表示するときは、その場で実行される簡単な計算です。計算を保存しないでください。 * data *を保存し、計算をディスプレイに実行します。 – David