我目前遇到一个问题,我想显示一个变量的数量,该变量通过一个while循环来收集信息。while 循环将使用多个产品,但我只想显示一个最终结果。这是我所拥有的:
$amountoff = NULL;
$faceval = 20;
while($row = mysql_fetch_object($que)){
$val = $row->amount;
$price = $row->price;
$quantity = $row->quantity;
//if($faceval>0){
if($faceval >= 0){
if($faceval < 0){
// Do Nothing
} else {
if($quantity > 1){
if($quantity * $price < $faceval){
$amountoff = $price * $quantity;
$faceval = $faceval - $val;
}
} else {
$amountoff = $price;
$faceval = $faceval - $val;
}
}
}
//}
}
echo money_format('%(#10n', $amountoff);
我的问题:我的问题是为什么我的金额总是返回空白或 0.00?根据我正在测试的内容,我的$val = 15.00,$price = 7.50,$quantity = 1。我无法弄清楚数学是如何打破或返回 0.00/空白的。有什么想法或建议吗?我没有收到任何PHP错误或MySQL错误;我只是没有得到超过 0.00 的任何内容作为我的返回值。
编辑:我已经通过完全删除第一个if语句来修改if语句,但我仍然得到0.00的响应
if($faceval=0({ 应该是
if($faceval==0){
它从未进入那句话
编辑:只是为了清理你的代码:编辑:添加了一些调试
$amountoff = NULL;
$faceval = 20;
$set = false;
while($row = mysql_fetch_object($que) && $faceval>0){
$val = $row->amount;
$price = $row->price;
$quantity = $row->quantity;
$set = true;
if($quantity > 1 && $quantity * $price < $faceval){
$amountoff = $price * $quantity;
if ($price==0) echo "PRICE IS ZERO<br>";
if ($quantity==0) echo "QTY IS ZERO<br>";
$faceval = $faceval - $val;
}
else {
$amountoff = $price;
if ($price==0) echo "PRICE IS ZERO<br>";
$faceval = $faceval - $val;
}
}
if (!$set) echo "LOOP NEVER ENTERED<br>";
echo money_format('%(#10n', $amountoff);
你的 if 语句是嵌套的,这是错误的方法。你第二个嵌套如果永远不会被击中:
if($faceval==0){
if($faceval >= 0){
if($faceval < 0){
如果错误,你有你的第一个if($facevalue = 0) { //do something }
。
它永远不会进入 if 内部,因为顶部的面值定义为 20,请检查您的代码。
if($faceval=0){
if($faceval >= 0){
if($faceval < 0){
// Do Nothing
} else {
if($quantity > 1){
if($quantity * $price < $faceval){
$amountoff = $price * $quantity;
$faceval = $faceval - $val;
您的嵌套 if 语句是错误的。
如果 $faceval
== 0,您将通过第一个;只有在 $faceval < 0
时,您才会失败第二个,因此您尝试运行的代码将永远不会到达。
编辑
并且已经指出 - 初始if ($faceval = 0)
需要==
,否则您将重置该值,而不是检查它。