Jump to content

Archived

This topic is now archived and is closed to further replies.

joecooper

MySQL query

Recommended Posts

i have this:

$sql = "SELECT * FROM aaform WHERE map1 IN ('$s_map1', '$s_map2', '$s_map3') OR map2 IN ('$s_map1', '$s_map2', '$s_map3') OR map3 IN ('$s_map1', '$s_map2', '$s_map3') ORDER BY honor ASC";

theres nothing wrong with that, it allworks.

i have this string:
$honor
and it needs to equal numbers ($from $to) which could be from:25 to:84 its what ever the user enters.

and i need it to only display the results where honor is between those numbers...

ive tryed this:

$sql = "SELECT * FROM aaform WHERE map1 IN ('$s_map1', '$s_map2', '$s_map3') OR map2 IN ('$s_map1', '$s_map2', '$s_map3') OR map3 IN ('$s_map1', '$s_map2', '$s_map3') AND honor= '>$to < $from' ORDER BY honor ASC";

but that dont work...

im confused as to how i can make it do this.
any help would be good.
if its not clear enough, ill try and make it make more sence :)

Share this post


Link to post
Share on other sites
$sql = "SELECT * FROM aaform WHERE (map1 IN ('$s_map1', '$s_map2', '$s_map3') OR map2 IN ('$s_map1', '$s_map2', '$s_map3') OR map3 IN ('$s_map1', '$s_map2', '$s_map3')) AND honor BETWEEN ('$to' , '$from') ORDER BY honor ASC";

I think anyway - long time since i used between. have a look around for it in the mysql manual you should find it somewhere.

Share this post


Link to post
Share on other sites
for this type of query, it's all in using parenthesis to define your order of precidence. try this and see if it helps:

[code]SELECT * FROM aaform WHERE (map1 IN ('$s_map1', '$s_map2', '$s_map3') OR map2 IN ('$s_map1', '$s_map2', '$s_map3') OR map3 IN ('$s_map1', '$s_map2', '$s_map3')) AND (honor > ($from - 1) AND honor < ($to + 1)) ORDER BY honor ASC[/code]

or, you could just use BETWEEN:
[code]
SELECT * FROM aaform WHERE (map1 IN ('$s_map1', '$s_map2', '$s_map3') OR map2 IN ('$s_map1', '$s_map2', '$s_map3') OR map3 IN ('$s_map1', '$s_map2', '$s_map3')) AND (honor BETWEEN $to AND $from) ORDER BY honor ASC
[/code]

notice i used ($from - 1) and ($to + 1) to INCLUDE the to and from numbers. if you don't want those numbers included, just remove the operation.

hope this helps!

Share this post


Link to post
Share on other sites
[!--quoteo(post=350198:date=Feb 28 2006, 08:31 AM:name=joecooper)--][div class=\'quotetop\']QUOTE(joecooper @ Feb 28 2006, 08:31 AM) [snapback]350198[/snapback][/div][div class=\'quotemain\'][!--quotec--]
thanks! the +1 and -1 things are a bonus, was going to do that :D thanks ever so much!
[/quote]

the BETWEEN command is also inclusive, so if you want a little cleaner SQL code, that's probably the way to go.

good luck!

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.