2016-12-02 1 views
2

필드가 member_id, referrer_member_id, sales_hold_fund 인 멤버 테이블이 있습니다. 회원의 판매 보류 펀드가> 100인지 확인하고 100보다 큰 경우 판매 보류 기금에서 100을 뺀 것을 확인하고 싶습니다. 판매 보류 펀드 인까지 그래서이 루프에 가야한다 100보다 큰루프가 무한 루프에있는 동안

예 :

판매 보류 펀드는 예는 것입니다 경우보다 큰 100 인 경우 먼저 확인해야, 300 300에서 200을 빼면 잔액 금액은 이됩니다. 잔액 금액이 100보다 큰지 확인합니다. 예일 경우 다시 200에서 100을 뺍니다. 이제 잔액 금액 이 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

@ 시드 답변을 업데이트했습니다. 그것은 당신에게 도움이 될 수 있습니다. – 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); 
................ 
............ 
} 
관련 문제