Foros del Web » Programación para mayores de 30 ;) » Programación General »

PERL: CGI y Templates

Estas en el tema de PERL: CGI y Templates en el foro de Programación General en Foros del Web. Quisiera hacer una consulta acerca de que funcion cumple cada parte de este codigo, por q lo tengo, funciona, pero necesito saber para que funciona ...
  #1 (permalink)  
Antiguo 31/05/2007, 09:27
Avatar de argalpalo  
Fecha de Ingreso: noviembre-2006
Mensajes: 35
Antigüedad: 18 años
Puntos: 0
PERL: CGI y Templates

Quisiera hacer una consulta acerca de que funcion cumple cada parte de este codigo, por q lo tengo, funciona, pero necesito saber para que funciona cada parte. Por ejemplo: "param(ROWS=>" ---- $dbh->selectall_arrayref--------{ Slice => {} }

Código:
$t->param(ROWS => $dbh->selectall_arrayref('SELECT * FROM opiniones', { Slice => {} }));
Tambien el que tenga una variante para este codigo acepto todo.
Lo que hago con esto es lo siguiente

Código:
my $cgi = CGI->new;
$dbh = DBI->connect($connectionInfo,$userid,$passwd) or die print "No hay conexion con la base<br>";

my $t = HTML::Template->new(filename => 'db.tmpl');

$t->param(ROWS => $dbh->selectall_arrayref('SELECT * FROM opiniones', { Slice => {} }));

$dbh->disconnect;

print $cgi->header;
print $t->output;
Es un Template con DBI para listar los datos de las tablas. El TMPL se los dejo por si lo quieren observar.

Código:
<table align="center" style="border:solid 4px #FF0000;" bgcolor="#009966" border="0">
	<tr>
		<td align="center"><b>NOMBRE</b></td>
		<td align="center"><b>MAIL</b></td>
		<td align="center"><b>DIRECCION</b></td>
		<td align="center"><b>OPINION</b></td>
	</tr>
	<TMPL_LOOP ROWS>
		<tr>
			<td align="center"><TMPL_VAR NAME=nombre></td>
			<td align="center"><TMPL_VAR NAME=mail></td>
			<td align="center"><TMPL_VAR NAME=direccion></td>
			<td align="center"><TMPL_VAR NAME=opinion></td>
		</tr>
</TMPL_LOOP>

Gracias de antemano
  #2 (permalink)  
Antiguo 31/05/2007, 11:13
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Re: PERL: CGI y Templates

Es una función que automáticamente te selecciona todo de una tabla de la base de datos e inserta esa info en el template...

la documentación del HTML::Template lo podés ver del cpan

Saludos
__________________
Esteban Quintana
  #3 (permalink)  
Antiguo 31/05/2007, 11:42
Avatar de argalpalo  
Fecha de Ingreso: noviembre-2006
Mensajes: 35
Antigüedad: 18 años
Puntos: 0
Re: PERL: CGI y Templates

Si yo se que hace eso, pero quisiera saber las funciones de casa cosa, cada parte de esto. Gracias
  #4 (permalink)  
Antiguo 31/05/2007, 13:48
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Re: PERL: CGI y Templates

http://search.cpan.org/~timb/DBI-1.56/DBI.pm

http://search.cpan.org/~samtregar/HT....9/Template.pm

En esas 2 páginas tienes toda la documentación, es fácil, simplemente estás usando esos módulos, primero crear la conexión (dbi), luego creas un objeto de template y le pasas por parámetros lo que seleccionará del DBI...

Quieres que te comentemos línea por línea ?

Saludos
__________________
Esteban Quintana
  #5 (permalink)  
Antiguo 31/05/2007, 14:16
Avatar de argalpalo  
Fecha de Ingreso: noviembre-2006
Mensajes: 35
Antigüedad: 18 años
Puntos: 0
Re: PERL: CGI y Templates

El tema es que no entiendo cada cosa de estas:

ROWS => $dbh->selectall_arrayref('SELECT * FROM opiniones', { Slice => {} })

{ Slice => {} }??????

ROWS => $dbh->selectall_arrayref?????????
  #6 (permalink)  
Antiguo 31/05/2007, 15:36
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Re: PERL: CGI y Templates

Veamos...

$t->param(ROWS => $dbh->selectall_arrayref('SELECT * FROM opiniones', { Slice => {} }));

$t = variable que tiene inicializado el objeto template
param = función del template que sirve para enviarle info al template

ROWS = nombre del parámetro del template que será usado en este código

Cita:
<TMPL_LOOP ROWS>
<tr>
<td align="center"><TMPL_VAR NAME=nombre></td>
<td align="center"><TMPL_VAR NAME=mail></td>
<td align="center"><TMPL_VAR NAME=direccion></td>
<td align="center"><TMPL_VAR NAME=opinion></td>
</tr>
</TMPL_LOOP>
selectall_arrayref('SELECT * FROM opiniones', { Slice => {} }) = función que selecciona las opiniones de la base de datos, arrayref es una forma que tiene el DBI de traer la información, significa que será una referencia al array real que tendrá la info...

Slice => {} = no tengo idea, es una opción del módulo template, buscala en la docuemtnación...

Bueno, espero que te sea de utilidad mis palabras...

__________________
Esteban Quintana
  #7 (permalink)  
Antiguo 31/05/2007, 21:49
Avatar de argalpalo  
Fecha de Ingreso: noviembre-2006
Mensajes: 35
Antigüedad: 18 años
Puntos: 0
Re: PERL: CGI y Templates

Muchisimas gracias, si alguien sabe algun otra variante de realizar esto me viene al pelo. Como por ejemplo antes de usar selectall_arrayref utilizar algun otra cosa que funcione de la misma forma, como fetchall ya que me dijieron que lo puedo hacer con esa funcion y resulta los mismo. Agradesco tu ayuda
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 23:03.