Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/08/2014, 14:14
xerifandtomas
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: buscador mejorado

si solo quieres buscar coincidencias de las palabras de una cadena dada, la solucion mas simple que veo y seme ocurre, es añadir un LIKE por cada palabra, ya que cada LIKE te buscara coincidencias sobre un patron dado, no se si esto es lo mas eficiente.

en fin me explico:
la consulsta debe de quedar algo asi:
Código SQL:
Ver original
  1. SELECT *
  2.     FROM tabla
  3.     WHERE
  4.           campo LIKE '%valorrecibido1%' OR
  5.           campo LIKE '%valorrecibido2%' OR
  6.           campo LIKE '%valorrecibido3%';

para contruir tu consulta primero deberas cortar la cadena que recibes $nombrepropietario, y armar la consulta

algo asi

Código PHP:
<?php
$busca_palabras
=explode(' '$nompropietario); //cortas por cada espacio
$cantidad_palabrascount($busca_palabras); // cuentas el numero de palabras

//construyes la consulta
$consulta ="SELECT * FROM datos WHERE " ;

for(
$i=0$i<= $cantidad_palabras$i++){
$palabra=$busca_palabras[$i];
$consulta.=" datos LIKE '%$palabra%' ";
if(
$i != $cantidad_palabras){$consulta.=" OR ";} // Si no es la ultim plbra añades un OR para el siguiente like
}
$consulta mysql_query($consulta,$serv );

?>

El inconveniente de haces esto es que te traera todos los registros donde coincida alguna de las palabras, aunque podrias jugar con los operadores para que traiga solo donde aparecen todas las palabras.