我在哪里出错的if-statement php


Where did i go wrong in if-statement php?

需要一点帮助,总是得到最后一个值188490?

if(isset($_POST['zapremina']) and is_numeric($_POST['zapremina']))
        {   
if ($_POST['zapremina']<=1050)
$_POST['zapremina']=1030;
if (($_POST['zapremina']>=1151) and ($_POST['zapremina']<=1300));
$_POST['zapremina']=2010;
if (($_POST['zapremina'] >= 1301) and ($_POST['zapremina'] <= 1600));
$_POST['zapremina']=4400;
if (($_POST['zapremina'] >= 1601) and ($_POST['zapremina'] <= 2000));
$_POST['zapremina']=9110;
if (($_POST['zapremina'] >= 2001) and ($_POST['zapremina'] <= 2500));
$_POST['zapremina']=45000;
if (($_POST['zapremina'] >= 2501) and ($_POST['zapremina'] <= 3000));
$_POST['zapremina']=91200;
if ($_POST['zapremina'] > 3001);
$_POST['zapremina']=188490;
        }
else
$_POST['zapremina']=0;

我认为这是一个小错误,有人知道吗,txanks一个日志

是的,你需要做else if

if ($_POST['zapremina']<=1050)
    $_POST['zapremina']=1030;
else if (($_POST['zapremina']>=1151) and ($_POST['zapremina']<=1300))
    $_POST['zapremina']=2010;
else if (($_POST['zapremina'] >= 1301) and ($_POST['zapremina'] <= 1600))
    $_POST['zapremina']=4400;

等。

至于为什么:你正在检查变量,然后将其设置为另一个值,这个值往往比你分配它后检查的任何值都要高。

所以任何高于的值最终都会产生188490

else表示:在第一次匹配时停止比较。

此外,您需要删除if语句后的;,因为;表示:End of operation。在这种情况下,它意味着End of If…这反过来意味着,下面的行将永远被执行,变量的值在那时甚至不再重要。

remove;[分号]在每个if语句末尾,并在当前场景中使用else if阶梯

if(isset($_POST['zapremina']) and is_numeric($_POST['zapremina']))
        {   
if ($_POST['zapremina']<=1050)
$zapremina=1030;
if (($_POST['zapremina']>=1151) and ($_POST['zapremina']<=1300))
$zapremina=2010;
if (($_POST['zapremina'] >= 1301) and ($_POST['zapremina'] <= 1600))
$zapremina=4400;
if (($_POST['zapremina'] >= 1601) and ($_POST['zapremina'] <= 2000))
$zapremina=9110;
if (($_POST['zapremina'] >= 2001) and ($_POST['zapremina'] <= 2500))
$zapremina=45000;
if (($_POST['zapremina'] >= 2501) and ($_POST['zapremina'] <= 3000))
$zapremina=91200;
if ($_POST['zapremina'] > 3001)
$zapremina=188490;
        }
else
$zapremina=0;

我看到了至少两个错误:
1)几乎每一行if语句后面都有分号(;)。这样,这些语句甚至不会影响任何东西,并且您的post变量被设置了六次。
2)您将post变量设置为新的(更高)值,然后检查这个新的更高的值,我猜这不是您想要完成的。

还有-正如数据已经说过的-避免写入post变量