Ver Mensaje Individual
  #4 (permalink)  
Antiguo 04/06/2014, 22:09
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 6 meses
Puntos: 977
Respuesta: Problema de búsqueda aplicando explode srtlen count

Quizá haya una forma más eficiente de hacer esto, pero lo que buscas hacer, lo haría de este modo:

Código PHP:
Ver original
  1. $variable = 'El sol ario';
  2. $desgloza = explode(' ', $variable);
  3. $comodin = false;
  4.  
  5. foreach ($desgloza as $palabra)
  6.     if (strlen($palabra) > 3) $comodin = true;
  7.    
  8. if ($comodin)
  9.     $query = "SELECT * FROM tabla WHERE MATCH (campo) AGAINST ('$variable' IN BOOLEAN MODE)";
  10. else
  11.     $query = "SELECT * FROM tabla WHERE campo LIKE '%" . implode("%' OR campo LIKE '%", $desgloza) . "%'";

El resultado de este ejemplo, es el siguiente:

Código MySQL:
Ver original
  1. SELECT * FROM tabla WHERE MATCH (campo) AGAINST ('El sol ario' IN BOOLEAN MODE)

Sin embargo, si $variable tuviera por valor "El sol", el resultado variaría:

Código MySQL:
Ver original
  1. SELECT * FROM tabla WHERE campo LIKE '%El%' OR campo LIKE '%sol%'

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 04/06/2014 a las 22:16 Razón: Fe de erratas