Microsoft
Software
Hardware
Network
Question : Search on multiple keywords
I need to search a database using a single input box.
I already have a search with
$sql = "SELECT * FROM entries WHERE ";
$isSearchByName = isset($_POST["s"]);
$criterion = $_POST["s"];
if ($isSearchByName)
{
$criterion = "FName LIKE '%" . $criterion . "%' OR MName LIKE '%" . $criterion
. "%' OR LName LIKE '%" . $criterion . "%' . OR MaName LIKE '%" . $criterion . "%'";
}
$sql .= $criterion;
The search works great with single entities: "Jos" picks up "Joseph, Josephine, Josten..." etc out of the required fields.
However, when the user makes a simple assumption that involves two terms, like "John Smith", no items are returned, even though they exist in the DB.
Is there a simple, elegant solution, or do I need to have multiple inputs?
Related Solutions:
MySQL Search on multiple keywords
Answer : Search on multiple keywords
If there are more than one term you have first convert string $_POST['s'] to array
$terms = explode(" ", $_POST['s']);
Then you have to iterate in the array building your query using each array value as criterion.
Hope this helps
Random Solutions
Stringtopostnet function not working in Crystal viewer 2008 ---
Clearing a submit form once submitted
RSH client for windows 2008 r2
Problems Replicating SYSVOL and NETLOGON on new DC WS 2008 R2 Standard in 2003 AD
Will there be a 13" Macbook with an iCore processor anytime soon? Safe to buy C2D?
asp - The resource could not be found
Backup Exec 2010 fails on VSS services
Exchange Edge Transport Issues
MS SQL count total time.
sharepoint - performance tunning