Hello,
Got a problem. I have an ecomm site and am close to deployment but running into a problem.. In calculating shipping cost, I am basing the shipping by the number of items.. I wrote this elseif code (methodical I know),
function shipping()
{
$dozen = 20.00;
$half = 15.95;
$add = 10.95;
$items = $_SESSION['items'];
if ($items <= 6) {
return $half;}
elseif (($items > 6) <= 12){
return $dozen;}
elseif (($items > 12) <= 18){
return $dozen 2; }
elseif (($items > 18) <= 24){
return $dozen 2;}
elseif (($items > 24) <= 30){
return ($dozen 2) + $add;}
elseif (($items > 30) <= 36){
return $dozen 3;}
elseif (($items > 36) <= 42){
return ($dozen 3) + $add;}
elseif (($items > 42) <= 48){
return $dozen 4;}
elseif (($items > 48) <= 54){
return ($dozen 4) + $add;}
elseif (($items > 54) <= 60){
return $dozen 5;}
elseif (($items > 60) <= 66){
return ($dozen 5) + $add;}
elseif (($items > 60) <= 72){
return $dozen 6;}
elseif (($items > 72) <= 78){
return ($dozen 6) + $add;}
elseif (($items > 78) <= 84){
return $dozen 7;}
}
When I test this code, with items = 6, I get the right value. Items = 12, I get the right number. But when the number is greater than 12, php does not parse any further than the first two conditions.
if ($items <= 6) {
return $half;}
elseif (($items > 6) <= 12){
return $dozen;}
I tried case statement as well, but same results, gets to second case and stops:
<?php
$items = 13;
function test($items){
$dozen = 20.00;
$half = 15.95;
$add = 10.95;
switch($items) {
case ($items <= 6):
return $half;
break;
case (($items > 6) <= 12):
return $dozen;
break;
case (($items > 12) <= 18):
return $add;
break;
}
}
echo test($items);
?>
Can anyone help me out? or give me an easier way. Thanks..
-Andre