Or even better :
<?
// ...
$string = "Hello World";
$Fields = Array("Table.Field1", "Table.Field2", "Table.Field3");
$Op = $Type=="All" ? "AND" : "OR";
for( $i=0; $i<count($Fields); $i++ )
{
$Field = $Fields[$i];
$Field = "CONCAT_WS('', ' ', TRIM($Field), ' ')";
$where .= "\n". ($i==0 ? "WHERE " : " $Op ");
$where .= "(";
$where .= "$Field LIKE '% ".(preg_replace("/[\s]+/", " %' $Op $Field LIKE
'% ", $string))." %'";
$where .= ")";
}
$sql = "SELECT ...";
$sql .= "\nFROM ...";
$sql .= $where;
// ...
?>
Try this :
$string = "Hello World";
$TableName = "Table";
$FieldName = "Field";
$Field = "CONCAT_WS('', ' ', TRIM($TableName.$FieldName), ' ')";
$Op = $Type=="All" ? "AND" : "OR";
$where = "WHERE ($Field LIKE '% ".(preg_replace("/[\s]+/", " %' $Op $Field
LIKE '% ", $string))." %')";
$sql = "SELECT * FROM Table ". $where;
----- Original Message -----
From: "Bruno Ferreira" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, April 21, 2004 3:46 PM
Subject: Re: [PHP-DB] Multiple work mySql database search.
Martin E. Koss wrote:
>I have a product database which can be searched for a keyword in up to 3
>fields; using this select query:
>
>$sql_select = "SELECT * from productlist WHERE (Name LIKE
>'%$SearchText%') OR (Description LIKE '%$SearchText%') OR (Keywords LIKE
>'%$SearchText%') ORDER BY Name";
>
>What I really want to achieve is if someone enters more than one work in
>the search for, how can I get the select query to search for one, the
>other, or both?
>
>
WHERE (field LIKE '%word1%' OR field LIKE '%word2%' [etc etc])
>
>I've thought of putting an option on the search for the user to select
>'All Words' or 'Any Word' so that the select query could deal with the
>search based on the full phrase they entered or any of the words.
>
>My problem is how to build the query.
>
>
>
Join them either with ANDs or ORs like this:
Searching for all words in a field: WHERE (field LIKE '%something%
AND field LIKE '%other_thing')
Searching for any of the words in a field: [read above in the
previous question]
Bruno Ferreira
---
[This E-mail scanned for viruses by Declude Virus]
--
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
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php