#!/usr/bin/perl # strict und warnings sollten in # jedem Programm Pflicht sein use strict; use warnings; # lade DBI für die Datenbankverbindung use DBI; # Ordner, in dem die CSV-Datei liegt my $dir = '/path/to/dir/with/csv/'; # Trennzeichen in der Datei (hier: das Semikolon) my $sep = ';'; # Verwende DBI mit DBD::CSV, damit mit den # CSV-Dateien gearbeitet werden kann my $dsn = "DBI:CSV:f_dir=$dir;csv_sep_char=\\".$sep # stelle Verbindung zur Datenbank her my $dbh = DBI->connect($dsn) or die $DBI::errstr; # Der Name der CSV-Datei (ohne Pfad) my $filename = 'info2.csv'; # Damit wird die Datei als Tabelle 'info' gehandelt $dbh->{'csv_tables'}->{'info'} = { 'file' => $filename}; # Lehrer, der in der 2. Stunde am Tag 4 frei hat my $gewaehlte_stunde = 2; my $gewaehlter_tag = 4; # hole alle Lehrer aus der Tabelle, bei denen # Stunde gleich der gewählten Stunde und der Tag # gleich dem gewählten Tag ist my $select = qq~SELECT Lehrer FROM info WHERE Stunde = ? AND Tag = ?~ # bereite die Abfrage vor my $sth = $dbh->prepare( $select ) or die $dbh->errstr; # führe die Abfrage aus $sth->execute( $gewaehlte_stunde, $gewaehlter_tag) or die $dbh->errstr; # gib alle gefundenen Lehrer aus. while( my ($lehrer) = $sth->fetchrow_array() ){ print $lehrer,"\n"; }