1#!/usr/bin/perl 2 3use DBI; 4use CGI; 5 6$q = new CGI; 7print $q->header(); 8print $q->start_html(-title=>"Nightly Tester DB"); 9 10unless($q->param('pwd')) 11 { 12 print $q->startform(); 13 print $q->password_field(-name=>"pwd", -size=>20, -maxlength=>20); 14 print $q->submit(); 15 print $q->endform(); 16 } 17else 18 { 19 # database information 20 $db="llvmalpha"; 21 $host="localhost"; 22 $userid="llvmdbuser"; 23 $passwd=$q->param('pwd'); 24 $connectionInfo="dbi:mysql:$db;$host"; 25 26 # make connection to database 27 $dbh = DBI->connect($connectionInfo,$userid,$passwd) or die DBI->errstr; 28 $query = "Select DISTINCT(NAME) from Tests"; 29 my $sth = $dbh->prepare($query) || die "Can't prepare statement: $DBI::errstr"; 30 my $rc = $sth->execute or die DBI->errstr; 31 while (($n) = $sth->fetchrow_array) 32 { 33 push @names, ($n); 34# print "$n<P>"; 35 } 36 $query = "Select DISTINCT(TEST) from Tests"; 37 my $sth = $dbh->prepare($query) || die "Can't prepare statement: $DBI::errstr"; 38 my $rc = $sth->execute or die DBI->errstr; 39 while (($n) = $sth->fetchrow_array) 40 { 41 push @tests, ($n); 42# print "$n\n"; 43 } 44 45# print join "<BR>", @names; 46 47 print $q->startform(); 48 print $q->scrolling_list(-name=>"test", -values=>\@tests, -multiple=>'true'); 49 print "<P>"; 50 print $q->scrolling_list(-name=>"name", -values=>\@names, -multiple=>'true'); 51 print "<P>"; 52 print $q->submit(); 53 print $q->hidden("pwd", $q->param('pwd')); 54 print $q->endform(); 55 56 # disconnect from database 57 $dbh->disconnect; 58 59 #now generate the urls to the chart 60 if ($q->param('test') && $q->param('name')) 61 { 62 my @names = $q->param('name'); 63 my @tests = $q->param('test'); 64 print "<P>"; 65 print join "<BR>", @names; 66 print "<P>"; 67 print join "<BR>", @tests; 68 print "<P>"; 69 $str = "pwd=" . $q->param('pwd'); 70 $count = 0; 71 foreach $n (@names) 72 { 73 foreach $t (@tests) 74 { 75 $str = "$str&t$count=$t&n$count=$n"; 76 $count++; 77 } 78 } 79 print "<img src=\"cgiplotNLT.pl?$str\">"; 80 } 81 } 82 83print $q->end_html(); 84