Übergabe von den zwei Buttons "Alles ausgeben" und "Suche starten". Mit "Alles ausgeben" soll aus einer CSV alle Daten als Tabel ausgegeben werden; mit "Suche starten" sollen nur Daten aus der CSV ausgegeben werden die im INPUT TYPE eingegeben worden sind. Dazu kommt noch das wenn eine ungültige Eingabe gemacht wird es ausgegeben wird, dass die Suche erfolglos war.
#!C:/Perl/bin/perl -wuse strict;
use CGI qw(:standard);
use CGI::Carp qw(fatalsToBrowser);
use GD::Graph::pie;
use DBI;
my $DBH;
my $STH;
my $CGI;
#my $antwort;
$CGI = new CGI();
### Suche ###
if ($CGI->param("suchanfrage")){
suche($CGI, $DBH, $STH);
}
elsif ( $CGI->param("daten")){
alle($CGI, $DBH, $STH);
}
### Start Subroutine Suche ###
sub suche{
my $jahr = param("jahr");
$DBH = DBI->connect("DBI:CSV:wahlen.csv=c:/www/cgi-bin")
or die "Konnte keine Verbindung zur Datenbank herstellen:$!";
$STH = $DBH->prepare("SELECT * FROM wahlen.csv WHERE jahr = '$jahr'")
or die "Konnte SQL-Statement nicht bereitstellen:$!";
$STH->execute()
or die "Ausfuehren nicht moeglich:$!";
my @werte;
my @res;
### Treffer ###
if ($STH->rows != 0){
print <<HERE_TEXT1;
Content-type:text/html
<HTML>
<HEAD>
<TITLE>Antwort</TITLE>
</HEAD>
<BODY>
<CENTER>
<H1>Suchergebnis:</H1>
<HR>
<TABLE BORDER>
<TR>
<TD WIDTH="50"><B>Jahr</B></TD>
<TD WIDTH="50"><B>CDU</B></TD>
<TD WIDTH="50"><B>SPD</B></TD>
<TD WIDTH="50"><B>FDP</B></TD>
<TD WIDTH="50"><B>Gruene</B></TD>
<TD WIDTH="50"><B>Die Linke</B></TD>
</TR>
HERE_TEXT1
my @data;
while (@data = $STH->fetchrow_array()){
my $jahr = $data[0];
my $cdu = "$data[1]";
my $spd = "$data[2]";
my $fdp = "$data[3]";
my $gruene = "$data[4]";
my $linke = "$data[5]";
print qq§<TR>\n<TD><B>$jahr</B></TD>\n<TD>$cdu</
TD>\n<TD>$spd</TD>\n<TD>$fdp</TD>\n<TD>$gruene</TD>\n<TD>$linke</TD>\n</TR>\n§;
print qq§<TABLE>\n<P>\n<A HREF ="../cgi-bin/wahlen3.pl">Daten als Diagramm</A></P>\n
<P><A HREF ="../cgp02_2.html">Neue Suche!</A></P>\n<HR>\n
</CENTER>\n</BODY>\n</HTML>§;
}}
### Keine Treffer ###
else {
print <<HERE_TEXT2;
Content-type:text/html
<HTML>
<HEAD>
<TITLE>Antwort</TITLE>
</HEAD>
<BODY>
<P>Leider brachte die Suche nach '$jahr' keine Ergebnisse!</P>
<HR>
<P><A HREF ="../cgp02_2.html">Neue Suche!</A></P>
</BODY>
</HTML>
HERE_TEXT2
}
#$STH->finish();
#$DBH->disconnect;}
### Ende der Subroutine Suche ###
### Start der Subroutine Alle ###
sub alle{
$DBH = DBI->connect("DBI:CSV:wahlen.csv=c:/www/cgi-bin/")
or die "Konnte keine Verbindung zur Datenbank herstellen!$!\n";
$STH = $DBH->prepare("SELECT * FROM wahlen.csv")
or die "Konnte SQL-Statement nicht bereitstellen!$!\n";
$STH->execute()
or die "Ausfuehren nicht moeglich!$!\n";
my @werte;
my @res;
print <<HERE_TEXT3;
Content-type:text/html
<HTML>
<HEAD>
<TITLE>Antwort</TITLE>
</HEAD>
<BODY>
<CENTER>
<H1>Suchergebnis:</H1>
<HR>
<TABLE BORDER>
<TR>
<TD WIDTH="50"><B>Jahr</B></TD>
<TD WIDTH="50"><B>CDU</B></TD>
<TD WIDTH="50"><B>SPD</B></TD>
<TD WIDTH="50"><B>FDP</B></TD>
<TD WIDTH="50"><B>Gruene</B></TD>
<TD WIDTH="50"><B>Die Linke</B></TD>
</TR>
HERE_TEXT3
my @data;
while (@data = $STH->fetchrow_array()){
my $jahr = $data[0];
my $cdu = "$data[1]";
my $spd = "$data[2]";
my $fdp = "$data[3]";
my $gruene = "$data[4]";
my $linke = "$data[5]";
print qq§<TR>\n<TD><B>$jahr</B></TD>\n<TD>$cdu</
TD>\n<TD>$spd</TD>\n<TD>$fdp</TD>\n<TD>$gruene</TD>\n<TD>$linke</TD>\n</TR>\n§;
print qq§<TABLE>\n<P><A HREF ="../cgp02_2.html">Neue Suche!</A></P>\n<HR>\n
</CENTER>\n</BODY>\n</HTML>§;}
$STH->finish();
$DBH->disconnect;}}