#! /usr/bin/perl # sor_lidar_sum - list monthly and yearly sums of data hour # PREAMBLE use DBI; use CGI; use strict; # default connection parameters - all missing my ($host_name, $user_name, $password) = (undef, undef, undef); my ($db_name) = "eosldata"; # construct data source my ($dsn) = "dbi:mysql:$db_name"; $dsn .= ":hostname=$host_name" if $host_name; $dsn .= ";mysql_read_default_file=/users/eosl3/www/.my.cnf"; # connect to server my (%attr) = ( RaiseError => 1 ); my ($dbh) = DBI->connect ($dsn, $user_name, $password, \%attr); # PREAMBLE # MAIN-BODY my ($cgi) = new CGI; # put out initial part of page my ($title) = "SOR Na Lidar Data Catalog"; print $cgi->header (); print $cgi->start_html (-title => $title); print "
\n"; print $cgi->h1 ($title); # parameters to look for in URL my ($sort_column) = $cgi->param ("sort_column"); my ($year) = $cgi->param ("year"); my ($url); print "\n"; print "
\n"; $url = $cgi->script_name (); $url .= sprintf ("?year=%s", "1998"); print $cgi->a ({-href => $url}, "1998" ); print " \n"; $url = $cgi->script_name (); $url .= sprintf ("?year=%s", "1999"); print $cgi->a ({-href => $url}, "1999" ); print " \n"; $url = $cgi->script_name (); $url .= sprintf ("?year=%s", "2000"); print $cgi->a ({-href => $url}, "2000" ); print "
\n"; if (!$year) { $year = 1998; } display_table ($sort_column, $year); print "
"; print "Back to Data Catalog"; print "
\n"; print $cgi->end_html (); # MAIN-BODY $dbh->disconnect (); #exit (0); # DISPLAY_CELL # display a value in a table cell; put non-breaking # space in "empty" cells so borders show up sub display_cell { my ($tag, $value, $encode) = @_; $value = $cgi->escapeHTML ($value) if $encode; $value = " " unless $value; print "<$tag>$value\n"; } # DISPLAY_CELL # need the _X to make the listelim tag not a subset of the previous one # DISPLAY_TABLE_X sub display_table { my ($sort_column, $year) = @_; my ($sth, $url); # if sort column not specified, use first column $sort_column = "1" unless $sort_column; $sth = $dbh->prepare (qq{ SELECT * FROM sor_lidar_data_list WHERE YEAR(date) = $year ORDER BY $sort_column }); $sth->execute (); # display table with a border print "\n"; # use column names for table headings; make each heading a link # that sorts output on the corresponding column print "\n"; # foreach my $col_name (@{$sth->{NAME}}[0,1,2,3,4,5]) # { # $url = $cgi->script_name (); # $url .= sprintf ("?sort_column=%s", $cgi->escape ($col_name)); # $url .= sprintf ("&year=%s", $cgi->escape ($year)); # display_cell ("TH", $cgi->a ({-href => $url}, $col_name), 0); # } $url = $cgi->script_name (); $url .= sprintf ("?sort_column=%s", $cgi->escape (${$sth->{NAME}}[0])); $url .= sprintf ("&year=%s", $cgi->escape ($year)); display_cell ("TH BGCOLOR=#FFFFFF", $cgi->a ({-href => $url}, "Date"), 0); $url = $cgi->script_name (); $url .= sprintf ("?sort_column=%s", $cgi->escape (${$sth->{NAME}}[1])); $url .= sprintf ("&year=%s", $cgi->escape ($year)); display_cell ("TH BGCOLOR=#FFFFFF", $cgi->a ({-href => $url}, "Start Time"), 0); $url = $cgi->script_name (); $url .= sprintf ("?sort_column=%s", $cgi->escape (${$sth->{NAME}}[2])); $url .= sprintf ("&year=%s", $cgi->escape ($year)); display_cell ("TH BGCOLOR=#FFFFFF", $cgi->a ({-href => $url}, "End Time"), 0); $url = $cgi->script_name (); $url .= sprintf ("?sort_column=%s", $cgi->escape (${$sth->{NAME}}[3])); $url .= sprintf ("&year=%s", $cgi->escape ($year)); display_cell ("TH BGCOLOR=#FFFFFF", $cgi->a ({-href => $url}, "Actual Time"), 0); $url = $cgi->script_name (); $url .= sprintf ("?sort_column=%s", $cgi->escape (${$sth->{NAME}}[4])); $url .= sprintf ("&year=%s", $cgi->escape ($year)); display_cell ("TH BGCOLOR=#FFFFFF", $cgi->a ({-href => $url}, "usable profiles"), 0); $url = $cgi->script_name (); $url .= sprintf ("?sort_column=%s", $cgi->escape (${$sth->{NAME}}[5])); $url .= sprintf ("&year=%s", $cgi->escape ($year)); display_cell ("TH BGCOLOR=#FFFFFF", $cgi->a ({-href => $url}, "total profiles"), 0); print "\n"; # display table rows while (my @ary = $sth->fetchrow_array ()) { print "\n"; # foreach my $val (@ary[0,1,2,3,4,5]) # { # display_cell ("TD", $val, 1); # } display_cell ("TD BGCOLOR=#FFFFFF align=right", $ary[0], 1); display_cell ("TD BGCOLOR=#CCFFFF align=right", $ary[1], 1); display_cell ("TD BGCOLOR=#CCFFFF align=right", $ary[2], 1); display_cell ("TD BGCOLOR=#FFFFFF align=right", $ary[3], 1); display_cell ("TD BGCOLOR=#FFFFCC align=right", $ary[4], 1); display_cell ("TD BGCOLOR=#FFFFCC align=right", $ary[5], 1); print "\n"; } $sth->finish (); print "
\n"; } # DISPLAY_TABLE_X