2016-12-02 13 views
2

フィールドがmember_id, referrer_member_id, sales_hold_fundであるメンバーテーブルがあります。私は、会員の売上保有資金が100を超えているかどうかをチェックしたいと思います.100を超える場合は、販売保有資金から100を差し引いて欲しいです。これは、販売ホールドファンドまでのループに行くべき100ループが無限ループに入っている間

例よりも大きい:

販売ホールドファンドはい、それがする場合、それは 100よりも大きい場合、まず、それは確認する必要があり、300であります300から200を差し引くと、残高は となり、残高が100を超えているかどうかを確認します。もしそうなら、 再び200からマイナス100となります。今度は、残高が であるかどうかを確認します。それ以上ではないので、ループを停止する必要があります。

これを実装しようとしましたが、これは無限ループになります。それが今、私は更新されなかっ取得ん$基金> 100かどうかをチェックしていますので、それが無限ループに起こっている100以上であれば

$stmt = $dbConnection->prepare("select Member.sales_hold_fund,Member.referrer_member_id from Member where member_id=?"); 
    $stmt->execute(array($member_id)); 
    $memberC = $stmt->fetch(PDO::FETCH_ASSOC); 

    $fund = $memberC['sales_hold_fund']; 

    while($fund > 100) 
    { 
     $balance_amount = $sales_hold_fund - 100; 
     echo $balance_amount; 
     $this->updateSalesHoldFund($member_id,$balance_amount); 

     $profit_sharing = 0.20 * $amount; 

     $referrer_fees = 0.10 * $amount; 

     if(!empty($referrer_member_id)) 
     { 
      // $this->createHundredId($date_of_purchase,$referrer_member_id,$profit_sharing,$referrer_fees,$member_id,$referrer_member_id1); 

     } 
     else if (!empty($referrer_member_id1)) 
     { 
     // $this->createHundredId($date_of_purchase,$referrer_member_id,$profit_sharing,$referrer_fees,$member_id,$referrer_member_id1); 
     } 

     else{ 
      // $this->createHundredId($date_of_purchase,$referrer_member_id,$profit_sharing,$referrer_fees,$member_id,$referrer_member_id1); 
     } 

    } 

は、私はそれが更新されたときにバランスの量を戻してチェックしたいです。

どうすればいいですか?助けてください..ありがとう..ありがとう..

誰でも助けてくれますか?ありがとうございました。

+2

あなたは決してループ内の '$ fund'で何もしないので、いつでもループに入る前にそれが保持していたどんな値でもあります。 – Qirel

+0

ファンドを更新してもう一度チェックすることはできますか? @Qirel – Sid

+1

あなたは$ fund ... –

答えて

2

更新回答

あなたは$sales_hold_fundを更新しようとしていると、次のようにあなたの説明に従って、コードがなければなりません。 $fund$sales_hold_fundに置き換えて、操作してください。 $balance_amountも交換します。

$stmt = $dbConnection->prepare("select Member.sales_hold_fund,Member.referrer_member_id from Member where member_id=?"); 
$stmt->execute(array($member_id)); 
$memberC = $stmt->fetch(PDO::FETCH_ASSOC); 

$sales_hold_fund = $memberC['sales_hold_fund']; 

while($sales_hold_fund > 100) 
{ 
    $sales_hold_fund = $sales_hold_fund - 100; 
    echo $sales_hold_fund; 
    $this->updateSalesHoldFund($member_id,$sales_hold_fund); 

    $profit_sharing = 0.20 * $amount; 

    $referrer_fees = 0.10 * $amount; 

    if(!empty($referrer_member_id)) 
    { 
     // $this->createHundredId($date_of_purchase,$referrer_member_id,$profit_sharing,$referrer_fees,$member_id,$referrer_member_id1); 

    } 
    else if (!empty($referrer_member_id1)) 
    { 
    // $this->createHundredId($date_of_purchase,$referrer_member_id,$profit_sharing,$referrer_fees,$member_id,$referrer_member_id1); 
    } 

    else{ 
     // $this->createHundredId($date_of_purchase,$referrer_member_id,$profit_sharing,$referrer_fees,$member_id,$referrer_member_id1); 
    } 

} 
+0

@Sid私は自分の答えを更新しました。それはあなたにとって有益かもしれません。 – Tiger

+0

はい、私は別の変数に残高を保存し、それを資金に追加する必要があります。このように($ fund> 100) { $ balance_fund = $ fund-100; $ fund = $ balance_fund; – Sid

0

whileループとスリープ接続内でdb関数を使用する必要があります。

while($fund > 100) 
    { 

$stmt = $dbConnection->prepare("select Member.sales_hold_fund,Member.referrer_member_id from Member where member_id=?"); 
    $stmt->execute(array($member_id)); 
    $memberC = $stmt->fetch(PDO::FETCH_ASSOC); 

    $fund = $memberC['sales_hold_fund']; 

    ob_start(); 
    sleep(1); 
................ 
............ 
}