Thread Suchfunktion in .csv Dateien (27 answers)
Opened by Del Piero at 2007-06-19 01:29

renee
 2007-06-25 11:24
#10064 #10064
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Probier mal
Code (perl): (dl )
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
49
50
51
52
53
54
55
#!/usr/bin/perl -w

#strict und warnings sollten in
#jedem Programm Pflicht sein
use strict;
use warnings;

use CGI;

#lade DBI für die Datenbankverbindung
use DBI;

my $cgi = CGI->new();
print $cgi->header('text/plain');
my %params = $cgi->Vars();

#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 eine 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 = $params{stunde};
my $gewaehlter_tag = $params{search};

#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";
}
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/

View full thread Suchfunktion in .csv Dateien