2011-03-29 82 views
1

我正在嘗試更改網上商店的某些PHP代碼,並且無法更改代碼的if/elseif部分。它應該檢查國家= x和郵政編碼= y收取如此多的歐元。如果該國不是X國際收費的話,還有別的。PHP根據郵政編碼計算郵遞費用

的問題是充電每一位買家列入ELSEIF聲明:(

if($_SESSION["usuario_alta"]["paisID"]==73) 
{ 
    if($_SESSION["usuario_alta"]["provinciaID"]==24) 
    { 
    $_SESSION['compra_gastos_envio'] = 10.50*$_sMULTI; 
    echo "10.50&euro; x $_sMULTI = <span><b>".$_SESSION['compra_gastos_envio']."&euro;</b></span>"; 
    } 
    elseif($_SESSION["usuario_alta"]["provinciaID"]==35 || 43) 
    { 
    $_SESSION['compra_gastos_envio'] = 4.50*$_sMULTI; 
    echo "4.50&euro; x $_sMULTI = <span><b>".$_SESSION['compra_gastos_envio']."&euro;</b></span>"; 
    } 
    else 
    { 
    $_SESSION['compra_gastos_envio'] = 8.50*$_sMULTI; 
    echo "8.50&euro; x $_sMULTI = <span><b>".$_SESSION['compra_gastos_envio']."&euro;</b></span>"; 
    } 
} 
else 
{ 
    $_SESSION['compra_gastos_envio'] = str_replace(",",".",$_SESSION["usuario_alta"]["gastos"])*$_sMULTI; 
    echo $_SESSION["usuario_alta"]["gastos"]." x $_sMULTI = <span><b>".$_SESSION['compra_gastos_envio']."&euro;</b></span>"; 
} 

我很肯定的答案是平凡的郵政編碼的速度,但我一直在努力,以谷歌爲!解決方案,但沒有成功,現在一會兒

感謝

回答

2
elseif ($_SESSION["usuario_alta"]["provinciaID"] == 35 || 43) 

這是不行的,你不能同時比較兩個值寫什麼樣子:

elseif ($_SESSION["usuario_alta"]["provinciaID"] == 35 || $_SESSION["usuario_alta"]["provinciaID"] == 43) 

elseif (in_array($_SESSION["usuario_alta"]["provinciaID"], array(35, 43))) 
1

我認爲這個問題是這樣的線:

} elseif($_SESSION["usuario_alta"]["provinciaID"]==35 || 43){ 

這解析爲如果$ _SESSION [] []是等於35,或者如果43.自43大於0,43評估爲真,這將導致elseif始終被執行,除非前面的條件成立。

+0

非常感謝!我現在試試這種方式,我希望它能起作用:) http://pastebin.com/JM6RkXHz – 2011-03-29 13:31:30