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
use wireshark to capture whats happening during the logon process
Microsoft RDP 7 Not Working
How to connect to network printer linux
asp.net I have a sqldatasource select witha a where that searches between dates
Backup Exec 12 - can't install any updates - gives error 1324 "The path Program Files contains an invalid character"
The user profile service failed the logon.
Remote Desktop not working via IP address
Are multiple PHP session paths possible?
Outlook 2007 delete cross out message instead of deleting
Java Client Applet - AccessControlException