簡體   English   中英

某些行不計入 foreach 循環

[英]Some rows aren't counted in a foreach loop

我從包含 9xx 個項目的數據庫中獲取價格。 我在顯示項目頁面上添加了這個。 使用 Foreach $rows=$row。 vprice 是我的銷售價格,dprice 是我的經銷商價格

$commisionrate = 30;
$commisionfee  = 100;
$fee  = $row['dprice'] + $commisionfee;//+100
$x = $row['dprice'];
$y = $x * $commisionrate / 100;
$z = $x + $y;
$rate = $z;//(100*30%)+100
if (($rate > $row['vprice']) && ($fee < $row['vprice'])){
    echo $fee;
}elseif (($fee > $row['vprice']) && ($rate < $row['vprice'])){
    echo $rate;
}elseif ($row['dprice']=$row['vprice']){
    echo $row['dprice'];
}

當我重新檢查所有內容時,我發現$row['dprice']沒有被計算在內,仍然按舊價格顯示。 錯誤示例:我發現 vprice 為 188,計算后 dprice 為 80 dprice 應為 104,但不會改變,仍然保持在 80。

$commisionrate = 30;
$commisionfee  = 100;
$fee  = $row['dprice'] + $commisionfee;//+100
$x = $row['dprice'];
$y = $x * $commisionrate / 100;
$rate = $x + $y;

// You don't need to put nested brackets, it very simple condition    
if ($rate > $row['vprice'] && $fee < $row['vprice']){
    echo "fee: " . $fee; //add some hint words, so you know which condition fires

// You don't need to put nested brackets, it very simple condition
} elseif ($fee > $row['vprice'] && $rate < $row['vprice']) {
    echo "rate: " . echo $rate;

// USE double `==`, because when single `=` used, the condition always returns true and you're confused by your result
} elseif ($row['dprice'] == $row['vprice']) { 
    echo "row[\'dprice\']: " . $row['dprice'];

// add last else
} else {
   // this is helpful for debugging of your possible output, regardless you are awaiting some output here
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM