PHP If else仅将错误输出显示为第一个输入值。代码给定

PHP If else仅将错误输出显示为第一个输入值。代码给定,php,mysql,if-statement,Php,Mysql,If Statement,使用Php计算费用-如果: $make=车辆品牌 $prod=车型 然后它应该显示适当的费用。但是,我的代码总是在第一个条目中显示费用 例如,如果代码第一个条目的make为Mahindra,它将在所有产品makeMahindra,Maruti,梅赛德斯-奔驰,丰田等中回显$l8150。代码不尊重逻辑 如果第一个条目被替换为Tata,那么它将响应7500,尽管任何产品都是Mahindra,Maruti,Mercedes-Benz,Toyota,Tata等 任何帮助都将不胜感激 代码已修改 <

使用Php计算费用-如果:

$make
=车辆品牌

$prod
=车型

然后它应该显示适当的费用。但是,我的代码总是在第一个条目中显示费用

例如,如果代码第一个条目的make为
Mahindra
,它将在所有产品make
Mahindra
Maruti
梅赛德斯-奔驰
丰田
等中回显
$l
8150
。代码不尊重逻辑

如果第一个条目被替换为
Tata
,那么它将响应
7500
,尽管任何产品都是
Mahindra
Maruti
Mercedes-Benz
Toyota
Tata

任何帮助都将不胜感激

代码已修改

<?php 
// logistics charges

$make = trim($this->prodDet->CatName);
$prod = trim($this->prodDet->product);

if ($make=="Mahindra") {
    $l= 8150;
}
else if($make=="Maruti Suzuki") {
    $l= 1500;
}
else if(($make=="Skoda") && ($prod=="Rapid")) {
    $l= 8000;
}
else if(($make=="Skoda") && ($prod=="Octavia")) {
    $l= 10000;
}
else if(($make=="Renault") && ($prod=="Duster")) {
    $l= 8500;
}
else if($make=="Tata") {
    $l= 7500;
}
else if($make=="Volkswagen") {
    $l= 7000;
}
else if ($make=="Toyota") {
    $l= 5750;
} 
else if ($make=="Mercedes Benz") {
    $l= 35000;
}

echo ($l);
?>

尝试使用带有嵌套
if
语句的函数:

// If you use false as default values, it will not throw an error if
// either value is left empty
function FetchLogistics($make = false,$prod = false)
    {
        // Account for case. Make it all lower so it's all the same
        $make   =   strtolower($make);
        $prod   =   strtolower($prod);

        if($make == "mahindra")
            return 8150;
        elseif($make == "maruti suzuki")
            return 1500;
        // Just check once for make
        elseif($make == "skoda") {
                // Check for models now
                if($prod == "rapid")
                    return 8000;
                elseif($prod == "octavia")
                    return 10000;
            }
        elseif($make == "renault") {
                if($prod=="duster")
                    return 8500;
            }
        elseif($make == "tata")
            return 7500;
        elseif($make == "volkswagen")
            return 7000;
        elseif($make == "toyota")
            return 5750; 
        elseif($make == "mercedes benz")
            return 35000;

        // No matches will return false (empty)
        return false;       
    }

// Verify these two values are what you expect
$make = trim($this->prodDet->CatName);
$prod = trim($this->prodDet->product);

// Echo the returned value.
echo FetchLogistics($make,$prod);

您有很多语法错误和错误。@johncode-您能告诉我1或2个错误吗-这样可以在您的if语句中使用
==
而不是
=
。在字符串值周围加引号。除非所有未加引号的车型都是常量,否则需要在其周围加引号<代码>($prod==“Rapid”)@johncode-Sir-谢谢-我已经做了必要的更改和修改-仍然需要的输出没有出现。我是php新手-学习-谢谢你让我知道。你能告诉我-现在缺少什么-代码修改了吗