-1

私は人々が彼らが得るポイントのために異なるものを買うことができるポイントシステムを手に入れました。[PRO]ユーザーにアップグレードできるように作成します。登録すると、mysqlに[user]としてログインします。アクション後に50ポイントを失い、[ユーザー]が[PRO]に置き換えられるようにコードを作成しています。しかし今、私は[pro]に置き換えられています。これは私が持っているコードです:

$insert = "UPDATE `users` SET `points` = (`points`-50) WHERE `username` = '".$username."' and points > 50";
mysql_query($insert);
if (mysql_affected_rows() > 0)
{

    // other codes

  $insert =  "UPDATE users SET rights=' [user]'  WHERE rights=' [pro]' WHERE `username` = '".$username."'";
    mysql_query($insert); 
header('location: succes.php');
}else{
    echo "You don't have enough points to upgrade to [PRO]";
}
4

3 に答える 3

2

それ以外の:

$insert =  "UPDATE users SET rights=' [user]'  WHERE rights=' [pro]' WHERE `username` = '".$username."'";

試す:

$insert =  "UPDATE users SET rights=' [pro]' WHERE `username` = '".$username."'";

2 つのWHERE句があり、それは機能しません。50 ポイントを奪ったら、権利をプロに更新するだけです。

最初と 2 番目のクエリを次のように組み合わせることもできます。

$insert = "UPDATE `users` SET `points` = (`points`-50), rights = ' [pro]' WHERE `username` = '".$username."' and points > 50";
于 2012-12-13T19:35:33.997 に答える
0

これはすべて、1つのクエリで実現できます。

UPDATE users SET rights=' [pro]', points = points - 50 WHERE username = '$username' AND points >= 50

rights=' [user]'このアップグレードオプションが現在「プロ」ではない人だけが利用できるようにする他の方法がアプリにない限り、これを行う条件を追加することを検討することもできます。

于 2012-12-13T19:40:01.417 に答える
0

Sean sql とコードを完成させるためだけに

最初のクエリでこれを置き換えます

    and points >= 50

ユーザーが 50 を持っている場合、[pro] にアップグレードすることもできます。

于 2012-12-13T19:40:24.030 に答える