Cita:
Iniciado por tuadmin solo usa mas LIKE's, el string de nombre filtralo y conviertelo a LIKE de SQL, y unelos con AND u OR dependiendo del resultado
Código PHP:
<?php
$nombre = 'pedro perrales'; //extremos las partes del nombre
$array_nombres = explode(" ",$nombre);
//Filtramos el resultado para ignorar espacios en blanco
$array_nombres = array_filter($array_nombres,function($val){
return strlen($val)>1;//No existe ningun nombre que sea de un solo caracter
});
//Creamos un array con el formato del LIKE MSYQL
$array_sql_like = array_map(function($name){
return "nombre LIKE '%".$name."%'";
},$array_nombres);
//Unimos todos los LIKES con AND para indicar que todo el nombre debe estar en el registro
$sql_like = implode(" AND ",$array_sql_like);
//SELECT * FROM clientes WHERE nombre LIKE '%pedro%' AND nombre LIKE '%perrales%'
//Unimos todos los LIKES con OR para indicar que cualquier nombre debe estar en el registro
//$sql_like = implode(" OR ",$array_sql_like);
//SELECT * FROM clientes WHERE nombre LIKE '%pedro%' OR nombre LIKE '%perrales%'
$sql = "SELECT * FROM clientes WHERE ".$sql_like."";
print($sql);
ya de ti depende como hacerlo, el FULLTEXT que te sugirieron, solo trabaja con tablas MYISAM el LIKE es para todo tipo de motor
las diferencias entre un LIKE y FULLTEXT son
LIKE=string exacto
FULLTEXT=string casi similar
en todo caso muchos dejaron de usar ese tipo de búsqueda FULLTEXT y a los que les es necesario estan USANDO sphinx o similares
OP quiere encontrar un registro basado en un texto de entrada que no tiene que ser exactamente el que está en la base de datos. Creo que sugerir un search server completo es un poco alejado de la realidad.
FULLTEXT no es solo para MyISAM, funciona también en Innodb por ejemplo