私のウェブサイトには毎日の質問があり、ユーザーが経験値(XP)を取得する正しい答えを選択することに基づいています。mySQLのデータセットを一度だけ更新する方法
mySQLデータベースに2つのテーブルがあります。 1)各質問は、彼らが私が持っている正しい質問に答える一度各ユーザは、テーブルのユーザーにXP()今
を持つテーブルquestionbankでxp_value()
- をquestionbankこのクエリでのif文:そう
$mysqli->query("UPDATE users SET xp = xp + '$xp_value' WHERE id = '$userID'");
は、もちろん、私は成功した新しい値にXPのユーザーを更新、しかし、問題はもちろんであるユーザーが戻ってこれに答えることができます彼/彼女のxpを増加させる無限の時間の質問。
xpを更新するだけのコード化戦略を探していますが、ユーザーが質問に答えようとしている他のすべての時間は、xpを与えず、彼/彼女が望んでいるかどうか再度確認します。
は oliver_foxx
これを達成するには、どのような質問に答える必要があります。あなたは、ユーザーXが質問Aに答えて経験Bを得たと言うことができるDB設計が必要です。そのようにして、更新を行うときに、まずユーザーがその質問にすでに回答しているかどうかを確認してください – Erick
ユーザー。そのためには別のテーブルが必要です。ユーザーが戻って同じ質問に再び答えると、そのテーブルに対してチェックする必要があります。そしてそのユーザーのためにその質問のエントリがある場合、そのユーザーに任意のXPポイントを与えます。 –
あなたはユーザーテーブルのみを更新していますが、ユーザーがどの質問を回答したかをどのように知っていますか? – mitkosoft