#!/usr/bin/perl -w # Stefan Bauer 2007 use DBI; #zuweisen der variablen fuer die datenbank $user = "bitte-eintragen"; $passwort = "bitte-eintragen"; $datenbank = "bitte-eintragen"; $treiber = "dbi:mysql:" . $datenbank; #oeffnen der datenbankverbindung my $dbh = DBI->connect($treiber, $user, $passwort) or die "Couldn't connect to database: " . DBI->errstr; # das hauptmenue &hauptmenue; sub hauptmenue { print "\nWillkommen bei Ihrer Buecherei> "; print "\n Was wollen Sie machen> "; print "\n\tausleihen \tzurueckgeben \tstatus ?\n>"; chomp ($frage = ); if ($frage eq "ausleihen") { &ausleihen; } else { if ($frage eq "zurueckgeben") { &zurueck; }else { if ($frage eq "status") { &abfrage; } } } } #routine 1 - buecher ausleihen sub ausleihen { my $sth = $dbh->prepare('UPDATE library SET buch = buch+1 WHERE id = ?') or die "Couldn't prepare statement: " . $dbh->errstr; print "Benutzer ID eingeben:> "; while ($id = <>) { # liest Benutzer Anfragen if ($id == 0) { # wenn "0" programmende print "Benutzer ID `$id' existiert nicht.\n\n"; } else { if ($id == 999) { # wenn "999" sprung ins menu - sub... &hauptmenue; } } my @data; chomp $id; $sth->execute($id) # startet Update an Datenbank or die "Couldn't execute statement: " . $sth->errstr; if ($sth->rows == 0) { print "Benutzer ID `$id' existiert nicht.\n\n"; } else { print "Es wurde 1 Buch ausgeliehen!"; } $sth->finish; print "\n"; print "Benutzer ID eingeben:> "; } } # routine 2 - buecher zurueckgeben sub zurueck { my $sth = $dbh->prepare('UPDATE library SET buch = buch-1 WHERE id = ?') or die "Couln't preare statement: " . $dbh->errstr; print "Benutzer ID eingeben:> "; while ($id = <>) { if ($id == 999) { # wenn "999" sprung ins menu - sub... &hauptmenue; } else { my @data; chomp $id; $sth->execute($id) # startet Update an Datenbank or die "Couldn't execute statement: " . $sth->errstr; if ($sth->rows == 0) { print "Benutzer ID `$id' existiert nicht.\n\n"; } else { print "Es wurde 1 Buch zurueckgegeben!"; } $sth->finish; print "\n"; print "Benutzer ID eingeben:> "; } } } #routine 3 - buecherstand abfragen sub abfrage { my $sth = $dbh->prepare('SELECT * FROM library WHERE id = ?') or die "Couldn't prepare statement: " . $dbh->errstr; print "Benutzer ID eingeben:> "; while ($id = <>) { # liest Benutzer Anfragen if ($id == 999) { # wenn "999" sprung ins menu - sub... &hauptmenue; } else { my @data; chomp $id; $sth->execute($id) # startet Abfrage an Datenbank or die "Couldn't execute statement: " . $sth->errstr; # liest die Treffer der DB ein und gibt sie aus while (@data = $sth->fetchrow_array()) { my $vorname = $data[0]; my $nachname =$data[1]; my $buecher = $data[3]; print "$vorname $nachname hat $buecher ausgeliehen!\n"; } if ($sth->rows == 0) { print "Benutzer ID `$id' existiert nicht.\n\n"; } $sth->finish; print "\n"; print "Benutzer ID eingeben:> "; } } } # ende - beenden der datenbank verbindung $dbh->disconnect;