Programación Web y Scripting > Perl
arreglos bidimensionales con data de Base de Datos
(1/1)
Ale123:
Hola! :angel:
Actualmente cuando intento extraer un data de una base de datos con:
$sth = $dbh->prepare($query); # --->Query de emplados
$sth->execute();
@result= $sth->fetchrow_array();
Al colocarlo en @result se me imprime siempre que la data traiga un solo registro:
Ej: Empleado con el ID 555 ----> juan, 23, 1500
y lo puedo colocar en variables
Ej: my $nombre= $result[o]; # juan
my $edad= $result[1]; # 23
my $sueldo= $result[2]; #1500
Mi pregunta es como hago en el caso de que no sea un solo registro sino una lista de emplados
Ej: Todos los mayores de 20 años?
juan, 23, 1500
pedro, 42, 5500
ana, 32, 2000
.
.
.
¿Como lo imprimo?
:ayuda:
explorer:
Debes hacer un bucle:
(sacado del manual de DBI)
--- Código: Perl ---$sth = $dbh->prepare("SELECT foo, bar FROM table WHERE baz=?"); $sth->execute( $baz ); while ( @row = $sth->fetchrow_array ) { print "@row\n"; # sacamos toda la fila (por ejemplo)}Otra opción es usar fetchall_arrayref(), por ejemplo, para obtener un array de array (todo el resultado en una lista de elementos, uno por registro, y cada uno es otro array, con todas las columnas).
Ale123:
:gracias: :gracias:
Ya me funcionó!! :smartass:
#Variables
my($dbh,$sth);
$dbh = &connect();
#prepara querys:
$sth = $dbh->prepare($query) or die("Couldn't prepare statement:" . $dbh->errstr);
#Se ejecuta el query
$sth->execute();
#Para Imprimir
while (($nombre, $edad, $sueldo) = $sth->fetchrow_array()) {
print "$nombre,$edad,$sueldo\n";
}
Navegación
Ir a la versión completa