Foros del Web » Programando para Internet » PHP »

Buscador de nombres

Estas en el tema de Buscador de nombres en el foro de PHP en Foros del Web. Buenas foreros, tengo un pequenio problemilla por ahi que quisieran que me ayudaran a resolver. Lo qe tengo hasta ahora es esto Código PHP: <?php ...
  #1 (permalink)  
Antiguo 16/01/2009, 15:08
Avatar de rudy69  
Fecha de Ingreso: octubre-2008
Ubicación: espndeportes.com
Mensajes: 195
Antigüedad: 15 años, 6 meses
Puntos: 7
Buscador de nombres

Buenas foreros, tengo un pequenio problemilla por ahi que quisieran que me ayudaran a resolver.

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());
               }
        }
   }


?>
Los opciones de busqueda establecidas son dos

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
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:34.