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
VMWare VSphere upgrade
Create linked server from MS Sql to oracle server
MS Outlook - Count emails
Padding Emptry spaces with Zero's in VB.NET
Hyper v full Installation remote administration issues
Is there a way to use the recovery partition to reinstall the OS if the drive won't boot or put it on a new hard drive?
XP Pro SP 3 - Ordinal 423 could not be located in the dynamic link library urlmon.dll
Restoring a Dell studio 1535 to factory default
Sort columns in pivot table.
Set Java Class toString name?