also er fehler war im SQL
alt:
my $stmt = qq~SELECT Tabelle1.Kundennummer, Tabelle1.Name,
Tabelle1.Telefon, Tabelle2.Rechnungsbetrag
FROM Tabelle1, Tabelle2
WHERE Tabelle1.Kundennummer = Tabelle2.Kundennummer~;
neu:
my $stmt = qq~SELECT Tabelle1.Kundennummer, Tabelle1.Name,
Tabelle1.Telefonnummer, Tabelle2.Rechnungsbetrag
FROM Tabelle1, Tabelle2
WHERE Tabelle1.Kundennummer = Tabelle2.Kundennummer~;
es war anstatt telefonnummer nur telefon und das gibt es nicht
Der Rechnungsbetrag wird leider nicht dargestellt
aber dafür wird der Rechnungsbetrag in der Telefonnummer Spalte dargestellt anstatt der telefonnummer.
Hier der 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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#!f:/Perl/bin/perl -w
use strict;
use warnings;
use CGI;
use CGI::Carp qw(fatalsToBrowser);
use DBI;
my $dbh = DBI->connect('DBI:ODBC:driver=Microsoft Access-Treiber (*.mdb); dbq=Kunden.mdb') or die $DBI::errstr;
my $cgi = CGI->new();
print $cgi->header();
my %params = $cgi->Vars();
### Suche oder Eintrag ###
if ($params{suchanfrage}){
suche($cgi, $dbh, %params);
}
elsif($params{eintrag}){
eintragen($cgi, $dbh, %params);
}
else{
print 'Keine Aktion ausgewählt';
}
$dbh->disconnect();
### Start Subroutine Suche ###
sub suche{
my ($cgi,$dbh,%params) = @_;
my $stmt = qq~SELECT Tabelle1.Kundennummer, Tabelle1.Name,
Tabelle1.Telefonnummer, Tabelle2.Rechnungsbetrag
FROM Tabelle1, Tabelle2
WHERE Tabelle1.Kundennummer = Tabelle2.Kundennummer~;
my $sth = $dbh->prepare($stmt) or die $dbh->errstr();
$sth->execute() or die $dbh->errstr();
### Treffer ###
if ($sth->rows != 0){
print <<HERE_TEXT1;
<HTML>
<HEAD>
<TITLE> Antwort </TITLE>
</HEAD>
<BODY>
<CENTER>
<H1>Suchergebnis:</H1>
<HR>
<TABLE BORDER>
<TR>
<td width="200"><b>Kundennummer:</b></td>
<td width="200"><b>Adresse:</b></td>
<td width="200"><b>Name:</b></td>
<td width="200"><b>Telefonnummer:</b></td>
<td width="200"><b>Rechnungsbetrag:</b></td>
</TR>
HERE_TEXT1
while (my @data = $sth->fetchrow_array()) {
print sprintf(qq~<TR>\n<TD><B>%s</B></TD>
<TD>%s</TD>
<TD>%s</TD>
<TD><B>%s</B></TD>
<TD>%s</TD>\n</TR>~,@data);
}
print qq§</TABLE>\n<P><A HREF =\"../formular1.html\">Neue Suche!</A></P>\n<HR>\n
</CENTER>\n</BODY>\n</HTML>§;
}
else {
print <<HERE_TEXT2;
<HTML>
<HEAD>
<TITLE>Antwort</TITLE>
</HEAD>
<BODY>
<P>Leider brachte die Suche nach '$params{name}' keine Ergebnisse!</P>
<HR>
<P><A HREF =\"../formular1.html\">Neue Suche!</A></P>
</BODY>
</HTML>
HERE_TEXT2
}
$sth->finish();
}
sub eintragen{
my ($cgi,$dbh,%params) = @_;
$dbh->do("INSERT INTO Kunden VALUES (?,?,?,?,?)",undef,
@params{qw/kundennummer adresse name telefonnummer rechnungsbetrag/}) or die $dbh->errstr();
my ($kundennummer,$adresse,$name,$telefonnummer,$rechnungsbetrag) =
@params{qw/kundennummer adresse name telefonnummer rechnungsbetrag/};
print <<HERE_TEXT3;
<HTML>
<HEAD>
<TITLE> Antwort </TITLE>
</HEAD>
<BODY>
<H4>Datenbankeintrag:</H4>
<HR>
<P><B>$kundennummer</B>, $adresse, $name, $telefonnummer, $rechnungsbetrag</P>
<HR>
<P><A HREF =\"../formular2.html\">Neuer Eintrag!</A></P>
<HR>
</BODY>
</HEAD>
HERE_TEXT3
}
Danke für die Hilfe
lolipop 999