Using perl Syntax Highlighting
sub Paises
{
my $db= conexion a la BD;
my $reg= $db->prepare("SELECT * FROM paises");
$reg->execute();
while (my @lineas=$reg->fetchrow_array())
{ $pais{$lineas[0]} = [$lineas[1],$lineas[2],$lineas[3],$lineas[4],$lineas[5]];
}
return(%pais);
$reg->finish();
$db->disconnect();
}
{
my $db= conexion a la BD;
my $reg= $db->prepare("SELECT * FROM paises");
$reg->execute();
while (my @lineas=$reg->fetchrow_array())
{ $pais{$lineas[0]} = [$lineas[1],$lineas[2],$lineas[3],$lineas[4],$lineas[5]];
}
return(%pais);
$reg->finish();
$db->disconnect();
}
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
esto funciona, sé que es mejorable, pero funciona.
Luego que tengo el hash quiero que por cada dirección almacenada en otra tabla se asigne, el país y el resto de valores guardados, para ello hago una consulta a la BD a la tabla de direcciones y busco.
Using perl Syntax Highlighting
while (my @lineas=$sth->fetchrow_array())
{
foreach my $cod(keys %res)
{
if ($lineas[0]=~/$cod.$/i)
{
#print "$lineas[0]=$cod;$res{$cod}[0];$res{$cod}[1];$res{$cod}[2];$res{$cod}[3];$res{$cod}[4]\n";
print "$res{$cod}[3]-$cod\n";
}
#else
#{print "$lineas[0]=SIN IDENTIFICAR\n";}
}
}
{
foreach my $cod(keys %res)
{
if ($lineas[0]=~/$cod.$/i)
{
#print "$lineas[0]=$cod;$res{$cod}[0];$res{$cod}[1];$res{$cod}[2];$res{$cod}[3];$res{$cod}[4]\n";
print "$res{$cod}[3]-$cod\n";
}
#else
#{print "$lineas[0]=SIN IDENTIFICAR\n";}
}
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
funciona muy bien para cada dirección localizada, si no está no la muestra. Pero si descomento el else para mostrar la que no ha identificado, por cada dirección le asigna su país correspondiente que ubico en el hash y luego se repite por cada valor del hash la palabra SIN IDENTIFICAR.
Obteniendo el siguiente resultado:
- Código: Seleccionar todo
ucv, caracas, venezuela = venezuela, america del sur. america
ucv, caracas, venezuela = SIN IDENTIFICAR
ucv, caracas, venezuela = SIN IDENTIFICAR
ucv, caracas, venezuela = SIN IDENTIFICAR .....
y así hasta 239 veces que es el número de elementos que tiene el hash y por cada dirección que son unas 100mil.
¡¡¡Una ayudita por favor!!!!, no sé qué estoy haciendo mal.