Ver Mensaje Individual
  #3 (permalink)  
Antiguo 18/08/2014, 14:20
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: buscador mejorado

En el LIKE, el caracter % hace de comodin, lo que debes hacer es reemplazar los espacios por comodines, y agregar un comodin al inicio y al final, asi:

Código PHP:
Ver original
  1. $nombre = "EDUARDO ARROYO";
  2. $consulta = "SELECT * FROM datos WHERE nombre LIKE '%".str_replace(" ", "%", trim($nombre))."%';";
  3.  
  4. // Resultado:
  5. // $consulta = "SELECT * FROM datos WHERE nombre LIKE '%EDUARDO%ARROYO%';";

Eso te devolvera los registros que contengan esas dos palabras en ese orden, sin importar lo que alla entre ambas.

Otra forma mucho mas simple de hacer lo que @xerifandtomas propone seria:

Código PHP:
Ver original
  1. <?php
  2. $nombre = "EDUARDO ARROYO";
  3. $consulta ="SELECT * FROM datos WHERE nombre LIKE '%".implode("%' OR nombre LIKE '%", explode(" ", $nombre))."%';";
  4.  
  5. // Resultado:
  6. // SELECT * FROM datos WHERE nombre LIKE '%EDUARDO%' OR nombre LIKE '%ARROYO%';
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Última edición por NSD; 18/08/2014 a las 14:34