Sorry for the delay in getting back to you but I had a long commute tonight.

Suppose you load an array in high weight order (from the zone that applies).

weight   value
 .5          9.45
1.0         10.71
1.5         11.97
2.0         13.23

load them into an array where like so;

select weight, zone$zn, from postage_costs

// looping thru returned rows, load an array ;
        $zonearray[] = array($weight, $value);

// then performing lookups;

unset($postage);
foreach($zonearray as $entry) {
    list($wght, $val) = $entry;
    if($wght >= $actualpkgweight) {
        $postage = $val;
          break;
    }
}
if(isset($postage)) // here you have the minimum postage to cover the
package.
else                      // here you have a package that weighs more than your largest
weight

You can probably figure ways to streamline this, but I think it may answer
your basic question.  The best solution is one that works for you reliably,
and there have to be at least 50 ways to do this.  This is just one.

good luck,

Warren Vail

-----Original Message-----
From: Louie Miranda [mailto:[EMAIL PROTECTED]
Sent: Thursday, November 04, 2004 10:06 PM
To: Murray @ PlanetThoughtful; [EMAIL PROTECTED]
Subject: Re: [PHP] getting a number range from user input.. (weight)


I have this on my db.

mysql> select * from rates_dhl where weight_kg = "6" between range and
Weight_KG;
+----+-------+-----------+--------+--------+--------+--------+--------+-----
---+--------+--------+
| id | range | Weight_KG | Zone_A | Zone_B | Zone_C | Zone_D | Zone_E
| Zone_F | Zone_G | Zone_H |
+----+-------+-----------+--------+--------+--------+--------+--------+-----
---+--------+--------+
|  1 | .000  | .5        | 9.45   | 12.29  | 14.18  | 15.12  | 16.59
| 18.48  | 21.32  | 23.63  |
+----+-------+-----------+--------+--------+--------+--------+--------+-----
---+--------+--------+
1 row in set (0.00 sec)

When i did try the between, even when i try to change the weight_kg to
any number, it only display the first entry.


On Fri, 5 Nov 2004 15:52:16 +1000, Murray @ PlanetThoughtful
<[EMAIL PROTECTED]> wrote:
>
>
>
> > OK, here is what it should do.
> >
> > I have a fixed range of weights from .5 to 20.0 Kg (kilogram) and for
> > each weight it has a succeeding value, i cannot jump or just round off
> > the numbers. So i need a range detector to do it.
> >
> > Because for each of the item below:
> >
> > > weight   value
> > > .5            9.45
> > > 1.0         10.71
> > > 1.5         11.97
> > > 2.0         13.23
> >
> > I must get the exact value, so let say for example. I have 1.3 it
> > should fall under 1.5 the idea i had was to do this, so i can detect
> > where the number should fall..
>
> Put the weight ranges in a MySQL table and use the BETWEEN operator to
> retrieve the appropriate weight.
>
> Something like:
>
> fromweight, toweight, value
> 0,0.5,9.45
> 0.501,1.0,10.71
> 1.001,1.5,11.97
>
> Then, the following SQL statement will pull the appropriate value:
>
> SELECT value FROM weights WHERE 1.3 BETWEEN fromweight AND toweight
>
> Much warmth,
>
> Murray
> http://www.planetthoughtful.org
> Building a thoughtful planet,
> One quirky comment at a time.
>
> --
>
>
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>


--
Louie Miranda
http://www.axishift.com

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to