>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