1

さまざまなユーザーのテーブル(ユーザー)があります。登録するために誰かを紹介すると、その人のプロファイルのあなたの(id)と同様のフィールド(refcode)に紹介IDが作成されます。今、彼/彼女がログインしているとき、私は紹介者のプロフィールに価値を加えたいと思います。

したがって、基本的には、ログインしていないユーザーに付加価値を付ける必要があります。

これが私のコードです。


$sql="SELECT * FROM users";

$val=(2);
$result=mysql_query($sql,$bd);


$data=mysql_fetch_assoc($result);

while ($array = mysql_fetch_array($result)) {
 // equate the value to a variable to use outside
 // this while loop
 $acc_balance = $array['com_balance'];
 $comm = $array {$_SESSION['refcode']};
 $commision = $array['id'];
 }

 $remainder = $acc_balance + $val;

 $update_query = mysql_query("UPDATE users SET com_balance = '".      mysql_real_escape_string($remainder) ."'
 WHERE id=refcode");

if ($update_query) {
print ""
4

2 に答える 2

0

まず、変更します。

$sql="SELECT * FROM users";

ログインしているユーザーの詳細を取得するためだけにテーブル全体をループする必要はないためです。次のような方法でうまくいくはずです。

$yourID=3;// Assume this is sanitized data from a cookie or a login script.
$sql="SELECT * FROM users where userID=$yourID";

次に、次のユーザーを紹介したユーザーのログインを確認するときに、次のようなクエリを追加します。

$update_query = mysql_query("
    UPDATE users SET 
        com_balance = (select * from (
            select com_balance from users where id=$yourID))");

これにより、新しいユーザーが参照ユーザーからの残高で更新されます(これはあなたが望むもののようです)。2番目のサブクエリにカプセル化しない限り、同じテーブルのサブクエリからテーブルを更新できないという厄介なmysqlのバグ/機能を回避するには、doubleサブクエリを使用する必要があります。

于 2012-09-25T12:47:21.350 に答える
0

数字でマークされた一連の変更:

   $sql="SELECT * FROM users where userID='$_SESSION['refcode']'"; //#1

   $val = 2; //#2 : Why do u need the ()?
   $result = mysql_query($sql,$bd);

   $data=mysql_fetch_assoc($result);

   while ($array = mysql_fetch_array($result)) {
  // equate the value to a variable to use outside
  // this while loop
   $acc_balance = $array['com_balance'];
   $comm = $array{$_SESSION['refcode']}; //#3: I am not sure what you're doing here? 
   $commision = $array['id'];
   }

   $remainder = $acc_balance + $val;       

   $update_query = mysql_query("UPDATE users SET com_balance = '".              mysql_real_escape_string($remainder) ."'
   WHERE id=refcode"); // #4: where are you defining refcode? if variable, the query needs to be WHERE id='$refcode'");

   if ($update_query) {
     print "Update successful";
于 2012-09-25T13:14:40.843 に答える