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?

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  
programming4us programming4us