You want to drop empty where clauses? This will work, although your
syntax will be wrong if $em is empty ( you will get an SQL syntax error
with the extra AND on the end ). You need a dummy clause after the where
clause to make things match up right, something that always returns true
like 1=1.

$query = "select * from TABLE where 1=1 ";

if (empty($f))
        $query .= " AND FIRST_NAME like '%$f%' ";
if (empty($l))
        $query .= " AND LAST_NAME like '%$l%' ";
if (empty($em))
        $query .= " AND ((HOME_EMAIL1 like '%$em%') OR (HOME_EMAIL2 like
'%$em%') OR
        (WORK_EMAIL1 like '%$em%') OR (WORK_EMAIL2 like '%$em%')) ";

// put anything else here
$query .= " group by COLNAME, order by COLNAME ";

You might also want to look into fulltext searches to utilize an index
in the database (is this MySQL?) instead of table scans.

TV Karthick Kumar wrote:
> 
> Hi all
> 
>     I have written the following code, but I dont' think it's a good way to
> write like this. Is there some other way to do good programming for this ?!
> 
> ****************************************************************************
> ******************
>    if ($f)
>    {
>     $SQL .= " (FIRST_NAME like '%$f%') AND ";
>    }
>    if ($l)
>    {
>     $SQL .= " (LAST_NAME like '%$l%') AND ";
>    }
>    if ($em)
>    {
>     $SQL .= " (HOME_EMAIL1 like '%$em%') OR (HOME_EMAIL2 like '%$em%') OR
> (WORK_EMAIL1 like '%$em%') OR (WORK_EMAIL2 like '%$em%') ";
>    }
> ****************************************************************************
> ******************
> 
>     Any help is appreciated very much.
> 
>     Thanks in adv.
> 
> ~ Karthick
> 
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> To contact the list administrators, e-mail: [EMAIL PROTECTED]

--
Monte Ohrt <[EMAIL PROTECTED]>
http://www.ispi.net/

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to