>I’m trying to figure out how to do a search trough a MySQL db using LIKE >or = but the thing is that I have 3 select boxes from where to choose >the search terms. Can I use something like a wildcard instead of making >several IF statements like this? > >SELECT * FROM table_name WHERE col1 = value1 AND col2 = value2 AND col3 >= % > >% goes for an unselected select box (default value = %) in case the user >doesn’t want to make an *advanced* search, so it fetches all rows which >does contains values 1 & 2.
Here is what I would do, if I was doing what I think you're doing, which I'm not at all sure of... <?php $query = "select col1, col2, ... from table_name where 1 = 1 "; if (isset($value1)){ $query .= " and col1 = $value1 "; } if (isset($value2)){ $query .= " and col2 = $value2 "; } if (isset($value3)){ $query .= " and col3 = $value3 "; } mysql_query($query) or error_log(mysql_error()); ?> The where 1 = 1 technique is a sort of "yeast" to allow all the subsequent parts to start with " and ..." If you change to " OR ... " then you need " where 1 = 0 " Think about it or work through an example to see why :-) -- Like Music? http://l-i-e.com/artists.htm Off-Topic: What is the moral equivalent of 'cat' in Windows? -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php