Olá, Tenho um site com um sistema de busca php e mysql, A busca funciona perfeitamente, mas só se estiver na ordem do nome da consulta.
Por exemplo: LOGO PARA SORVETERIA PNG GRÁTIS
Se eu pesquisar pelo termo "LOGO" ou "SORVERERIA PNG". Eu recebo os resultados corretamente
Mas se eu pesquisar 2 ou palavras que não estejam juntas como "LOGO PNG" ou "LOGO SORVETERIA" Nenhum resultado é encontrado.
Eu preciso de uma busca que encontre o resultado independentemente da ordem digitada. Aqui está o código que estou utilizando:
$sSearch = $_REQUEST['filterText'] ? $_REQUEST['filterText'] : "";
if(strlen($sSearch))
{
$filesClause .= " AND (originalFilename LIKE '%".$db->escape($sSearch)."%' OR shortUrl LIKE '%".$db->escape($sSearch)."%')";
}
$sortColNameFiles = 'visits';
$sortDirFiles = 'desc';
$l = (int) $_REQUEST['perPage'] > 0 ? (int) $_REQUEST['perPage'] : 30;
$files = $db->getRows('SELECT * FROM file ' . $filesClause . ' ORDER BY ' . $sortColNameFiles . ' ' . $sortDirFiles . ' LIMIT ' . $l);
Note que a busca é feita na table file e na coluna originalFilename.
E também busca na coluna shortUrl, mas a busca inteligente precisar ser somente no originalFilename mesmo.