PHP If else仅将错误输出显示为第一个输入值。代码给定
使用Php计算费用-如果: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等 任何帮助都将不胜感激 代码已修改 <
$make
=车辆品牌
$prod
=车型
然后它应该显示适当的费用。但是,我的代码总是在第一个条目中显示费用
例如,如果代码第一个条目的make为Mahindra
,它将在所有产品makeMahindra
,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新手-学习-谢谢你让我知道。你能告诉我-现在缺少什么-代码修改了吗