Re: Re: Multi search function (help)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux