also würde das ganze auf das beispiel oben bezogen so aussehen oder?:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/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 = '/var/www/html/cgi-bin';
# 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 = 'stunden.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";
}