• Viernes 29 de Marzo de 2024, 13:36

Autor Tema:  arreglos bidimensionales con data de Base de Datos  (Leído 3028 veces)

Ale123

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
arreglos bidimensionales con data de Base de Datos
« en: Miércoles 11 de Junio de 2014, 18:24 »
0
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
  • ; # 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

  • Miembro activo
  • **
  • Mensajes: 68
    • Ver Perfil
Re:arreglos bidimensionales con data de Base de Datos
« Respuesta #1 en: Miércoles 11 de Junio de 2014, 21:06 »
0
Debes hacer un bucle:

(sacado del manual de DBI)
Código: Perl
  1. $sth = $dbh->prepare("SELECT foo, bar FROM table WHERE baz=?");
  2.  
  3. $sth->execute( $baz );
  4.  
  5. while ( @row = $sth->fetchrow_array ) {
  6.     print "@row\n";             # sacamos toda la fila (por ejemplo)
  7. }
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).
« última modificación: Miércoles 11 de Junio de 2014, 21:07 por explorer »

Ale123

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re:arreglos bidimensionales con data de Base de Datos
« Respuesta #2 en: Miércoles 11 de Junio de 2014, 22:52 »
0
 :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";         
   }