免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 989 | 回复: 0
打印 上一主题 下一主题

perl 从数据库获得年,并 降序 保留一个重复值 显示在 模板上 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-07-18 19:12 |只看该作者 |倒序浏览
sub my_getyears                 #数据库里面日期的格式 是               年-月-日           因为有的是 2012-03-04   和  2012-04-23  所以要让重复值只保留一个
                {
               
                        my $sqlcmd="SELECT id,date FROM cinews";       
                        my $sth=$dbh->prepare($sqlcmd);
                           $sth->execute() or die("$DBI::errstr");                             
                        my @loop_date;
                        while(my($id,$date)=$sth->fetchrow_array())
                          {                                                               
                                        my %row_data_year;
                                        my @datesplit = split(/-/, $date);#将date变量 分割,并将结果保存在自己定义的数组@datesplit里面.
                                        my $date_year=@datesplit[0];#获得 年
                                        $row_data_year{date_year} = $date_year; #获得数据库字段值
                                        push( @loop_date, \%row_data_year ); #将 年 放在二维数组里面.
                                }       
                        return \@loop_date;       
}


sub genoutput
        {
                my $tt2file = shift;
                my $shortformparam = shift;
                if (!$tt2file) {
                        $tt2file = $in{act};
                        $shortformparam = 1;
                }
                if ($shortformparam) {
                        $tt2file = "perlnews_$tt2file.tt2";
                }
                $data{usererrormsg} = $cm->{usererrormsg};
                $data{infomsg} = $cm->{infomsg};
                $cm->output(1, $cm->processTemplate($tt2file, \%g, \%data, \%in));
        }




然后通过调用:
$data{allyearsfromsql}= my_getyears();
genoutput("perlnews_front_login.tt2");



将值传到了 tt模板中.

在 模板文件中  
                                                       <ul>
                                                                 [% FOREACH num IN data.allyearsfromsql.sort('date_year') %]
                                                                        <li>
                                                                                [% num.date_year %]<br />
                                                                        </li>
                                                                [% END %]
                                                        </ul>

这里调用之后,显示的     年    是 按照的  升序排序,并且没有去掉重复值.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP