For what it's worth, if you store your form fields in an array, you can loop through the array to search for isset & empty on each array element and have the array add the fields that are relevant to your sql statement. Doing this will also ensure that you won't have to modify your script (that generates the sql statement) regarding how many form fields you have every time you add a new form field to the form page. Gav -----Original Message----- From: nabil [mailto:nabil.attar@xxxxxxxxxxxxx] Sent: Thursday, 27 May 2004 10:57 PM To: php-db@xxxxxxxxxxxxx Subject: Re: Re: Multi search function (help) yes, this is true, we should add empty() function too. "Ross Honniball" <ross@xxxxxxxxxxxxxxxxxxx> wrote in message news:6.0.0.22.1.20040527095621.01be1ce0@xxxxxxxxxxxxxxxxxxxxxxx > I'm not 100% sure, but you may want to also check if the field is empty > (using empty() function) before including in your search. (in addition to > isset) > > Also, just a caution, you will need to take some care in figuring when and > where to place your 'and' statements linking the various parts of the query. > > At 08:01 AM 27/05/2004, you wrote: > >Nabil wrote: > > > > > "David Robley" <robleyd@xxxxxxxxxxxxxx> wrote in message > > > news:20040526113904.54450.qmail@xxxxxxxxxxxxxxx > > >> Nabil wrote: > > >> > > >> > hi all.... > > >> > > > >> > Is there a way to condition your search: > > >> > > > >> > -I have a form for four text boxes for search my Mysql... > > >> > -I don't want to write 4 conditions and for SQL statements incase he > > >> > decided not to search with all keywords (fields) > > >> > - I have by example : name, lastname , nickname and phone form... > > >> > I need a way to select my records even one or more field were null > > >> > (searching only on of the above) > > >> > > > >> > because the following SQL will generate null result > > >> > > > >> > > > >> > $name=$_POST['naame']; > > >> > $lastname=$_POST['lastname']; > > >> > $nickname=$_POST['nickname']; > > >> > $m_date=$_POST['m_dateY']; > > >> > echo $name.$lastname.$nickname.$m_date; > > >> > > > >> > "SELECT id, name , lastname , m_date from users > > >> > where > > >> > name like binary '%$name%' and lastname like binary '%$lastname%' and > > >> > nickname like binary '%$nickname%' and m_date= YEAR('$m_date') order > > > by > > >> > id ASC ") or die(mysql_error()); > > >> > > > >> > > > >> > > > >> > Thanks in advanced > > >> > > >> Use isset to test whether the POST values are set and only include in the > > >> query if there is a value. > > > > > thanks .. but my question is not for isset... i m thinking consider that i > > > have 10 search fields... if i have to do a combination then i need a day > > > to right the various SQL statements > > > >So do something like: > > > >$query = "SELECT id, name , lastname , m_date from users where 1 "; > >if (isset($_POST['name'])) { > > $query .= "AND name like binary '%{$-POST['name']}%' "; > >} > >if (isset($_POST['lastname'])) { > > $query .= "AND name like binary '%{$_post['lastname']}%' "; > >} > >//etc etc > >$query .= " order by id ASC "; > >$sql = mysql_query($query) or die(mysql_error()); > > > > > >-- > >David Robley > > > >Only cosmetologists give make-up exams. > > > >-- > >PHP Database Mailing List (http://www.php.net/) > >To unsubscribe, visit: http://www.php.net/unsub.php > > . > . Ross Honniball. JCU Bookshop Cairns, Qld, Australia. > . -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php