2016-12-02 2 views
2

У меня есть таблица элементов, в которых находятся поля member_id, referrer_member_id, sales_hold_fund. Я хочу проверить, есть ли в распоряжении фонда для продажи членства> 100, и если он превышает 100, я хочу, чтобы минус сумма 100 из фонда торгового холдинга. Так что это должно идти в цикле до трюма продажи фонд больше, чем 100.Пока цикл идет в бесконечном цикле

Пример:

держать фонд

продаж 300, сначала следует проверить, если она больше, чем 100, если да будет минус 100 от 300, 200 будет остаток, снова проверит, превышает ли остаток сумму больше 100, если да снова будет минус 100 от 200. Теперь будет проверяться, не превышает ли остаток суммы больше, чем 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); 
     } 

    } 

Я хочу, чтобы вернуть остаток суммы, когда он обновляется и проверить, если он больше 100. Теперь он будет бесконечный цикл, потому что я только проверка, если $ фонд> 100, который никогда не становится обновленным.

Как это сделать? Пожалуйста, помогите .. Спасибо ..

Может ли кто-нибудь помочь? Спасибо.

+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

Вы должны использовать функции db внутри циклов while и sleep.

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); 
................ 
............ 
} 
Смежные вопросы