Foros del Web » Programando para Internet » PHP »

¿Mejorar esta busqueda?

Estas en el tema de ¿Mejorar esta busqueda? en el foro de PHP en Foros del Web. Buenas, tengo un cliente que me ha pedido una cosa muy complicada, es tan tonto como : "Necesito TODAS las palabras que existan en la ...
  #1 (permalink)  
Antiguo 14/09/2009, 09:18
 
Fecha de Ingreso: enero-2009
Mensajes: 212
Antigüedad: 15 años, 3 meses
Puntos: 4
¿Mejorar esta busqueda?

Buenas, tengo un cliente que me ha pedido una cosa muy complicada, es tan tonto como :

"Necesito TODAS las palabras que existan en la RAE de mas de 2 caracteres y menos de 8 ( es decir de 3 a 7 ) en una base de datos mysql".

No quiere descripcion ni nada, simplemente las palabras, para tener un diccionario propio para una aplicacion que le estamos montando, y aqui viene mi "gracia" que se como hacerlo pero lo veo una burrada como hacerlo.

Ahora mismo hago esto :

Código PHP:

for ($i 1$i <= 28$i++) {
    for (
$j 1$j <= 28$j++) {
        for (
$x 1$x <= 28$x++) {
            for (
$y 1$y <= 28$y++) {
            
                
$letra saberletra($i).saberletra($j).saberletra($x).saberletra($y);
                echo 
$xx." ".$letra."<br>";
                
$xx++;
                
                if (
strlen($letra) > )
                {
                    
$sql "select id from temporal where palabra = '".$letra."'"
                    
$partidas mysql_query($sql);
                    if (
mysql_num_rows($partidas) == 0)
                    {
                        if (
diccionario ($letra) == 1)
                        {
                            echo 
$letra."<br>";
                            
$sql "insert into palabra (palabra, caracteres) values ('".$letra."',".strlen($letra).")";
                            
mysql_query($sql);
                        }
                        
                            
// guardo la palabra en temporal, para que no se vuelva a buscar.
                            
$sql "insert into temporal (palabra) values ('".$letra."')";
                            
mysql_query($sql);
                        
                    }
                }
            
            }
        }
    }
    

Saberletra -> Nos dice que letra del abecedario es.


Aqui es solo para maximo 4 caracteres y la funcion diccionario me devuelve si existe o no en rae.es , el tema es que si es para 4 letras unicamente y lleva ... ni se cuanto tiempo y todavia no termino, no me quiero ni imaginar cuando le pongamos que sea para 7 , el numero de letras subira digamos que bastantes.

¿Se os ocurre algo para mejorar este codigo? O simplemente dejamos esto y nos vamos por otro lado, ya que de inicio nos parecio muy sencillo hacerlo asi pero despues hemos visto que no parece muy viable.

Algo me dice que esto que hago es una burrada pero no se me ocurre nada ....

Ah y necesitamos las palabras, el cliente pondra por ejemplo "as" y le tengo que mostrar TODAS las que tengan "as"

Espero haberme explicado, un saludo y gracias.
__________________
Juega al ajedrez online :http://www.davchess.com
Tecnicas de Ajedrez:http://www.7chess.com

Última edición por davchess; 14/09/2009 a las 09:41 Razón: Titulo incorrecto
  #2 (permalink)  
Antiguo 14/09/2009, 10:24
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Respuesta: ¿Mejorar esta busqueda?

El codigo no se lo entendi o me enrede. Perosi lo que quiere es exactamente lo que puso entre comillas seria algo como esto:



select * from mds_content where CHARACTER_LENGTH(empaque)>10 and CHARACTER_LENGTH(empaque)<13;
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 09:47.