Re: Comparing Alphanumeric values in a range
| From: | Samantha Savvakis | Date: | Mon, 23 Sep 2002 04:50:10 +0000 |
| Subject: | Re: Comparing Alphanumeric values in a range | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-117237@lists.php.net to get a copy of this message | ||
Just quickly, forgot to mention:
I've tested this on 2 platforms:
Windows PHP 4.2.1
SCO Openserver 4.2.1
These two both don't work.
I just tested on SCO OpenUnix 4.2.1 - this one works!! Problem is, I need
this to work on SCO Openserver.
Thanks,
Sam
"Samantha Savvakis" <samantha@cfs.net.au> wrote in message
news:20020923044205.65193.qmail@pb1.pair.com...
> Hi,
>
> I have a task to generate a new document number for a given range. This
> document number is alphanumeric.
>
> Here is the problem:
>
> $lowrange1 = "900000";
> $highrange1 = "HZZZZZ";
>
> $currentno = "90CZZZ";
>
> I expect that the next number in the series is: $nextnum = "90D000";
>
> Before using this next number in the series, I need to confirm that the
> number falls within the given range.
>
> So I do something like this:
>
> if ((strval($nextnum) >= strval($lowrange1)) && (strval($nextnum) <=
> strval($highrange1)))
> {
> // we have a valid number in the range
> }
> else
> {
> // not in the range
> }
>
> Now.. the problem is - PHP thinks that 90D000 is less than $lowrange1. I
> individually tested them and $lowrange1 was consistently greater than the
> number.
>
> I put the strval function around each variable to ensure it was comparing
> strings and not numbers for those variables that only contain numbers.
This
> seems to be a problem with the letter "D" and "E" for all positions within
> the 6 character alphanumeric number, except for the last position.
>
> ie. 900000D works - $lowrange1 is less than this number and $highrange1 is
> greater than this number.
>
> For all other positions where the letter "D" and "E" are generated:
>
> ie. 9000D0, 900D00, 90D000, 9D0000 and 9000E0, 900E00, 90E000, 9E0000
>
> Is there a known problem with this? Why it is only happening with the
> letters "D" and "E"? If I have 900F00 - this works, and so on for the rest
> of the letters of the alphabet.
>
> Thanks,
> Sam
>
>
>