2013-03-05 44 views
1

「ELLOPHP:只有列表項隨着數量大於0的值在聲明如果

我想從填充‘訂單式’到客戶端的項目只列出客戶端已指定一個項目數量值爲1或更多的數量作爲採購訂單收據發送,一旦達到提交,就會通過電子郵件生成併發送。

這裏是我迄今爲止在該部分:

$i = 1; 
$imax = 4; 

echo "Products<br />"; 
echo "-------------------------------------------------------------<br />"; 

while ($i <= $imax) { 

$itemqty = ${'qty'.$i}; 
$itempn = ${'pn'.$i}; 
$itemdesc = ${'desc'.$i}; 
$itemprice = ${'value'.$i}; 
$itemtotalprice = ${'elinetotal'.$i}; 

    if ($itemqty !== 0) { 
      echo $itemqty . " x " . $itemdesc . " (" . $itempn . ") @ $" . $itemprice . " ea. = $" . $itemtotalprice . "<br />"; 
    } 
$i++; 
} 

它正確地列出一切,但它不爲0的值忽略的項目它會一一列舉如下:

Products 
------------------------------------------------------------- 
0 x Item #1 Description (HOSE-12) @ $155.00 ea. = $0.00 
5 x Item #2 Description (GAUGE-2) @ $51.00 ea. = $255.00 
0 x Item #3 Description (PTC) @ $0.70 ea. = $0.00 
10 x Item #4 Description (PT-234R) @ $15.94 ea. = $159.40 

這可能是最簡單的修復方法,但任何人都可以對此有所瞭解嗎?我將不勝感激!

+1

而不是使用動態變量,爲什麼不把每個qty,pn,desc等存儲在數組中? – Phil 2013-03-05 22:30:59

+0

如果'$ itemqty'是一個字符串(數據庫中的值通常是),那麼'!== 0'將產生true。試試'!=='0''。 – 2013-03-05 22:38:30

+0

我與@Phil - 任何時候你認爲你需要動態變量名稱,你可能會走上一條充滿潛在錯誤和可伸縮性的路徑。 – 2013-03-05 22:52:10

回答

1

我最初的猜測是$itemqty是字符串'0'。嘗試使用不等於運營商,如

if ($itemqty != 0) 

代替不相同運營商,即!==

否則,你可以嘗試鑄造$itemqty分配爲整數,如

$itemqty = (int) ${'qty'.$i}; 
+0

這正是它的錯誤。這樣一個簡單的修復。非常感謝你! – user2137681 2013-03-05 22:39:53