Lo qe tengo hasta ahora es esto
Código PHP:
<?php
$num_telefonico="SELECT IdCliente,CteNombre,CteTelefono FROM clientes WHERE CteTelefono='$busqueda'";
$nombre_exacto="SELECT IdCliente,CteNombre,CteTelefono FROM clientes WHERE CteNombre LIKE '%$busqueda%'";
$nombre_coincidencias="SELECT IdCliente,CteNombre,CteTelefono,MATCH (CteNombre) AGAINST ('$busqueda') AS coincidencias FROM clientes WHERE MATCH (CteNombre) AGAINST ('$busqueda')";
IF(!$busqueda)
{ exit();}
ELSE
{ IF(is_numeric($busqueda))
{$query=mysql_query("$num_telefonico", $conexion) or die (mysql_error());}
ELSE
{$query=mysql_query("$nombre_exacto",$conexion) or die (mysql_error());
$num_rows=mysql_num_rows($query);
IF($num_rows==0)
{$query=mysql_query("$nombre_coincidencias",$conexion) or die (mysql_error());
}
}
}
?>
Numero telefonico:
Si la variable $busqueda es numero, se ejecuta la consulta $num_telefonico.
Nombre Exacto:
Si el usuario ingreso ejemplo: "Juan Carlos Mandonado" se ejecutara la consulta $nombre_exacto.
Nombre incompleto:
Si el usuario ingreso "Juan Maldonado" no aparecera con la primera consulta y pasa a ejecutarse la consulta $nombre_coincidencias.
Mi problema consiste en que me tira todos los que se llaman "Juan" (Nombre tan comun por cierto) y los que se llamen "Maldonado" poniendo en primer lugar a "Juan Carlos Maldonado".
La solucion que me he propuesto darle es conocer como MATCH asigna numeros a "coincidencias", he leido mucho acerca de MATCH() pero no he encontrado nada conciso que me diga que formula utiliza para calcular MATCH().
Tengo 3 parametros que me ayuden a resolver (si tiene solucion de esta manera) el problema para este tipo de busqueda.
1- El nombre tiene que tener minimo 4 caracteres.
2- Tiene que haber minimo 2 palabras
3- El numero maximo de caracteres que se pueden alacenar son 40.
Conociendo esto talvez podria calcular el valor minimo que MATCH tomaria cuando coiciden al menos 2 palabras en un nombre, eleminando en el SELECT las personas que solo se llaman "Juan".
Ahora que termino el post croe que va en MySQL xD
