#!c:/Perl/bin/perl use strict; use warnings; use CGI qw(:standard); use CGI::Carp qw(fatalsToBrowser warningsToBrowser); use DBI; my $cgi = CGI->new; print $cgi->header(); my %params = $cgi->Vars(); warningsToBrowser(1); # damit werden Warnungen an den Browser geschickt ##Suche oder Eintrag## if ($params{suchanfrage}){ suche(); } else{ eintragen(); } #Start Subroutine Suche sub suche { my $nachname = $params{nachname}; my $abteilung = $params{abt}; my $dbh = DBI->connect("DBI:CSV:mitarbeiter=c:/apachefriends/xampp/htdocs/cgi-bin") or die "Fehler: $DBI::errstr\n"; my $statement = "SELECT * FROM mitarbeiter WHERE Nachname = ? AND Abteilung = ?"; # hier besser mit Platzhaltern arbeiten my $sth = $dbh->prepare($statement) or die "Konnte SQL-Statement nicht bereitstellen: $DBI::errstr"; $sth->execute($nachname,$abteilung) or die "Ausfuehren nicht moeglich: $DBI::errstr"; # hier die Platzhalter füllen #Treffer if ($sth->rows != 0){ print $cgi->start_html(-title => 'Antwort'); print qq~

Suchergebnis


~; while (my ($familienname,$vorname,$abt,$telefon) = $sth->fetchrow_array()) { print qq§\n\n\n\n\n\n§; } print qq§
Familienname: Vorname:Abteilung: Telefon:
$familienname$vorname$abt$telefon
\n

Neue Suche

\n
\n
§; } else { ##Keine Treffer print $cgi->start_html(-title => 'Antwort'); print qq~

Leider brachte die Suche keine Ergebnisse!


Neue Suche!

~; } print $cgi->end_html(); $sth->finish(); $dbh->disconnect; } ##Ende Subroutine Suche sub eintragen{ #Start Subroutine Eintragen my $dbh = DBI->connect("DBI:CSV:mitarbeiter=c:/apachefriends/xampp/cgi-bin") or die "Fehler: $DBI::errstr"; my $statement = "INSERT INTO mitarbeiter(Nachname,Vorname,Abteilung,Telefon) VALUES(?,?,?,?)"; my $sth = $dbh->prepare($statement) or die "Konnte SQL-Statement nicht bereitstellen: $DBI::errstr"; $sth->execute($params{nachname},$params{vorname},$params{abt},$params{telefon}); #Antwortseite print $cgi->start_html(-title => 'Antwort'); print qq~

Datenbankeintrag:


$nachname,$vorname, $abt, $telefon


Neuer Eintrag!


~; $sth->finish(); $dbh->disconnect; }