[Cascavel-pm] Res: Res: Res: Dúvida - gerar gráfico - Campo Vazio

Alexei Znamensky russoz em gmail.com
Quarta Setembro 23 09:35:22 PDT 2009


Patty,

você só precisa preencher o hash com zeros se for acessá-lo diretamente.
agora se você quiser, pode fazer uma função/método simples que encapsula
esse hash, algo do tipo:

sub count_by_month {
  my ($year,$month) = @_;

  my $key = sprintf("$ano%02d", $mes);
  return 0 if not exists $elementos{$key};

  return $elementos{$key};
}

daí quando quiser um número é só chamar count_by_month( 2000, 05 ) que ele
te retorna o valor (preenchido pelo seu loop do database, normal), ou zero
caso não haja nada lá.

[]s,
Russo

2009/9/23 Giuliani Deon Sanches <giulianisanches em gmail.com>

> 2009/9/23 Patty Silva <ptfzs em yahoo.com.br>:
> > Pessoal;;
> > Um jeito mais simples e pratico!! :) Usando Hash..
> >
> > my @anos=qw(1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006
> 2007
> > 2008 2009);
> >
> > foreach my $ano(@anos)
> > {
> >       foreach my $mes(1..12)
> >       {
> >                 $mes =  substr("0".$mes,-2,2);
> >                 my $d=$ano.$mes;
> >                 $elements{$d} = 0;
> >        }
> > }
> >
> > while(($data, $cont) = $sth->fetchrow_array)
> > {
> >            $elements{$data} = $cont;
> >
> > }
> >
> >
> > Ok??????? :)
> >
> > Obrigada
> >
> > ________________________________
> > De: Wendel Scardua <wendelscardua em gmail.com>
> > Para: Cascavel Perl Mongers <cascavel-pm em pm.org>
> > Enviadas: Terça-feira, 22 de Setembro de 2009 20:53:13
> > Assunto: Re: [Cascavel-pm] Res: Res: Dúvida - gerar gráfico - Campo Vazio
> >
> > 2009/9/22 jimmy <jimmy.tty em gmail.com>
> >>
> >> talvez fosse necessário gerar apenas o intervalo de meses de janeiro
> >>  ou de um mês pré determinado até agora.
> >>
> >> 200901, 200902, 200903,
> >> 200904, 200905, 200906,
> >> 200907, 200908, 200909
> >>
> >> e fazer o select count por eles ao invés do que está na tabela.
> >>
> >
> > Sim, isso seria uma solução. Não descrevi a solução, descrevi qual devia
> ser
> > o problema que ela apresentou - e como o select que ela quer não deve
> sair
> > tão fácil assim (se é que dá pra fazer, pelo menos sem pog), sendo mais
> > fácil fazer por fora a parte de definir as datas. Como ela mesmo disse
> ter
> > feito depois, usando hash.
> >
> >
> > ________________________________
> > Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 10 -
> > Celebridades - Música - Esportes
> > _______________________________________________
> > Cascavel-pm mailing list
> > Cascavel-pm em pm.org
> > http://mail.pm.org/mailman/listinfo/cascavel-pm
> >
>
>
> A parte de anos ficaria um pouco mais simples assim:
>
> <code>
> my %elements;
>
> foreach my $ano (1995..2009) {
>       foreach my $mes (1..12) {
>                 $elements{sprintf("$ano%02d", $mes)} = 0;
>       }
> }
> </code>
>
> --
> twitter.com/giulianisanches
> giulianisanches.blogspot.com
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>



-- 
Alexei Znamensky [russoz_gmail_com] [russoz.wordpress.com] [
www.flickr.com/photos/alexeiz]
"Though we live in trying times, we're the ones who have to try"
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/cascavel-pm/attachments/20090923/4ef28f6e/attachment.html>


Mais detalhes sobre a lista de discussão Cascavel-pm