Php 而循环是在一个无限循环中进行的
我有一个成员表,其中的字段是Php 而循环是在一个无限循环中进行的,php,while-loop,Php,While Loop,我有一个成员表,其中的字段是成员id、推荐人成员id、销售持有基金。我想检查会员的销售持有基金是否大于100,如果大于100,我想减去销售持有基金中的金额100。所以这应该是一个循环,直到销售持有基金大于100 例如: 销售持有基金为300,首先检查是否大于 100如果是300减去100,余额为200, 再次检查余额金额是否大于100,如果是 同样,它将从200减去100。现在,它将检查是否有余额 大于100而不是大于100,因此应停止循环 我试图实现这一点,但这是一个无限循环 $stmt
成员id、推荐人成员id、销售持有基金
。我想检查会员的销售持有基金是否大于100,如果大于100,我想减去销售持有基金中的金额100。所以这应该是一个循环,直到销售持有基金大于100
例如:
销售持有基金为300,首先检查是否大于
100如果是300减去100,余额为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);
}
}
我想在更新时返回余额金额,并检查其是否大于100。现在它是无限循环,因为我只检查$fund>100,这是永远不会更新的
我该怎么做?请帮忙。。谢谢
有人能帮忙吗?谢谢。更新答案 您正在尝试更新
$sales\u hold\u fund
,根据您的描述,您的代码应如下所示。将您的$fund
替换为$sales\u hold\u fund
,并对其执行操作。它还将替换您的$balance\u 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);
}
}
您必须在while循环和sleep连接中使用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);
................
............
}
您从不在循环中使用
$fund
执行任何操作,因此在进入循环之前,它将始终是它持有的任何值。我如何更新基金并再次检查它@QIREL您必须对$fund执行操作。即使您没有在代码中的任何位置使用$fund
!将$sales\u hold\u fund
和$balance\u amount
替换为$fund
@Sid我已更新了答案。是的,但我需要将余额保存在另一个变量中,然后将其添加到基金中。。就像这样,($fund>100){$balance_fund=$fund-100;$fund=$balance_fund;