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
explorer.exe is using 90-100% of each CPU
TRANSACT SQL: COALESCE FUNCTION - DATE RANGES AND NULL VALUES
bootable usb
Move jpg files from file server and create shortcut
How do I embed ajax calendar extender in asp.net gridview correctly?
Autocorrelation: Durbin-Watson tests
Big DNS problem, some internet servers reporting non-existent domain
WS2008 Terminal Service on DC
VB.NET simple SendMail program error: System.Net.Mail.SmtpExcept
ion: Failure sending mail
jQuery - AJAX Call when a Checkbox is Checked