我目前遇到的问题是,我希望显示来自运行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的响应
答案 0 :(得分:3)
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);
答案 1 :(得分:0)
你的if语句是嵌套的,这是错误的方法。你第二次嵌套如果永远不会被击中:
if($faceval==0){
if($faceval >= 0){
if($faceval < 0){
答案 2 :(得分:0)
你的第一个错误if($facevalue = 0) { //do something }
。
它永远不会进入if,因为你的topvalue被定义为20,检查你的代码。
答案 3 :(得分:-1)
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)
需要==
,否则您将重置该值,而不是检查它。