PHP根据邮政编码计算运费

时间:2011-03-29 13:10:13

标签: php

我正在尝试更改在线商店的一些PHP代码,但我无法更改代码的if / elseif部分。它应检查country = x和邮政编码是否收取这么多欧元。如果该国不是X来收取国际费率,还有其他的。

问题在于向每位买家收取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 个答案:

答案 0 :(得分: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 :(得分:1)

我认为问题在于这一行:

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

这解析为如果$ _SESSION [] []等于35或者等于43.由于43大于0,43计算为true,这将导致elseif始终被执行,除非前面的if条件为真。