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
How to redirect requests to a particular web site to a local server?
Safari 5 Crashes immedietly
Unattended Windows 7 Installation answer file not working
Login Script to add multiple network printers?
MS Dynamics 4.0 Outlook Configuration - Microsoft Dynamics CRM server is not available
Netapp - increased LUN volume - resized to gain space - but windows server has not picked up change - what am i Missing please
XP Mode - usb software key not working
Application user
I'm trying to config route and vpn in Ubuntu
Installing Small Business Server 2008 trail