Tngo un problemilla con una funcion de mi cgi i no consigo enteder pq no funciona.
- Código: Seleccionar todo
sub perljax_mi_perfil {
my ($dbname,$dbhost,$dbuser,$dbpass,$dbtable) = ($conf->{db_name},$conf->{db_host},$conf->{db_user},$conf->{db_pass}, $conf->{db_table});
my $dbh = DBI->connect("DBI:mysql:$dbname:$dbhost", "$dbuser", "$dbpass") or die "Imposible conectar con la DB";
my $sth = $dbh->prepare("SELECT * FROM $dbtable WHERE nick = '$nick'") or die "Imposible preparar la consulta";
$sth->execute() or die "Imposible ejecutar la consulta";
my $datos_perfil = $sth->fetchall_arrayref({}) || undef;
$sth->finish;
$dbh->disconnect;
my $return;
my $file = $conf->{template_path};
if (defined($datos_perfil)) {
$file .= "mi_perfil.tmpl";
my $template = new HTML::Template( filename =>$file );
$template->param(ROWS => $datos_perfil);
$return = $template->output();
}
else {
$file .= "formulario_crear_perfil.tmpl";
my $template = new HTML::Template( filename =>$file );
$return = $template->output();
}
return $return;
}
El problema esta en el if i else, si no existe la entrada en la tabla mysql deberia printar el template formulario_crear_perfil.tmpl y si existe deberia printar el template mi_perfil.tmpl
Nose pq siempre se keda en el bloke del IF nunca pasa al else
salu2