#!/usr/bin/perl -w
use strict;
use warnings;
use DBI;
use HTML::Template;
my ($dbh, $sth);
my @firma_loop;
my @contact_loop;
$dbh = DBI->connect ("DBI:mysql:host=192.168.0.1;database=myDB",
"user", "pw", {PrintError => 0, RaiseError => 1});
&fetch_ent();
$dbh->disconnect();
exit(0);
sub fetch_ent {
my $sth = $dbh->prepare (" SELECT Firma, Strasse, PLZ, Ort, EID
FROM firma
WHERE Firma LIKE 'N%'
");
$sth->execute();
while (my ($firma, $strasse, $plz, $ort, $eid) = $sth->fetchrow_array()) {
my @inner_loop = &fetch_contact($eid);
my %row = (
firma => $firma,
strasse => $strasse,
plz => $plz,
ort => $ort,
contact_loop => \@inner_loop
);
push(@firma_loop, \%row);
}
$sth->finish();
my $template = HTML::Template->new(filename => 'customer2.tmpl');
$template->param(firma_loop => \@firma_loop);
#print "Content-Type: text/html\n\n";
print $template->output;
}
sub fetch_contact {
my $eid = shift @_;
my @contact_loop;
my $sth = $dbh->prepare (" SELECT Name, Vorname, Telefon, Fax, Email
FROM person
WHERE EID = '$eid'
");
$sth->execute();
while (my ($nachname, $vorname, $telefon, $fax, $email) = $sth->fetchrow_array()) {
my %row = (
nachname => $nachname,
vorname => $vorname,
telefon => $telefon,
fax => $fax,
email => $email
);
push(@contact_loop, \%row);
}
$sth->finish();
return @contact_loop;
}