Thread CGI+HTML+DB durchsuchen+TXT generieren (84 answers)
Opened by lolipop 999 at 2006-12-03 10:38

lolipop 999
 2006-12-03 10:38
#9137 #9137
User since
2006-04-07
150 Artikel
BenutzerIn
[default_avatar]
Hallo ich heb folgendes Problem:

Ich möchte über ein HTML mit hilfe eines CGI eine DB durchsuchen:

Die DB heißt Kunden mit Tabelle 1 und Tabelle 2:

Tabelle 1 :
Kundennummer
Adresse
Name
Telefonnummer

Tabelle 2:
Kundennummer
Rechnungsbetrag

Wenn die Datenbank durchsucht wird und ein Treffer dabei ist soll dieser Datensatz in einer Tabell angezeigt werden und TXT Datei generiert werden wo der Rechnungsbetrag drinnen steht.

Hier mein Ansatz:

Code: (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
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
#!f:/Perl/bin/perl -w

use strict;

use CGI qw(:standard);
use CGI::Carp qw(fatalsToBrowser);
use DBI;

my $DBH;
my $STH;
my $CGI;
my $antwort;

$CGI = new CGI();




### Suche oder Eintrag ###

if ($CGI->param("suchanfrage")){
suche($CGI, $DBH, $STH);
}
elsif($CGI->param("eintrag")){
eintragen($CGI, $DBH, $STH);
}


### Start Subroutine Suche ###

sub suche{

my $name = param("name");
my $kundennummer = param("kundennummer");

$DBH = DBI->connect("DBI:CSV:Kunden=f:/Apache2/cgi-bin")
or die "Konnte keine Verbindung zur Datenbank herstellen:$!";
$STH = $DBH->prepare("SELECT * FROM Kunden WHERE Name = '$name' AND Kundennummer = '$kundennummer' ")
or die "Konnte SQL-Statement nicht bereitstellen:$!";


$STH->execute()
or die "Ausfuehren nicht moeglich:$!";


### Treffer ###

if ($STH->rows != 0){

print <<HERE_TEXT1;
Content-type:text/html

<HTML>
<HEAD>
<TITLE> Antwort </TITLE>
</HEAD>

<BODY>
<CENTER>
<H1>Suchergebnis:</H1>
<HR>
<TABLE BORDER>
<TR>
<TD WIDTH="200"><B>Name:</B></TD>
<TD WIDTH="100"><B>Kundennummer:</B></TD>
<TD WIDTH="200"><B>Adresse:</B></TD>
<TD WIDTH="100"><B>Telefonnummer:</B></TD>
</TR>

HERE_TEXT1




my @data;

while (@data = $STH->fetchrow_array()) {
my $name = $data[0];
my $kundennummer = $data[1];
my $adresse = $data[2];
my $telefonnummer = $data[3];





print qq§<TR>\n<TD><B>$name</B></TD>\n<TD>$kundennummer</TD>\n<TD>$adresse</TD>\n<TD>$telefonnummer</TD>\n</TR>\n§;



}



### Keine Treffer ###

else {

print <<HERE_TEXT2;
Content-type:text/html

<HTML>
<HEAD>
<TITLE>Antwort</TITLE>
</HEAD>
<BODY>
<P>Leider brachte die Suche nach '$name' keine Ergebnisse!</P>
<HR>
<P><A HREF =\"../formular1.html\">Neue Suche!</A></P>
</BODY>
</HTML>

HERE_TEXT2
}
$STH->finish();
$DBH->disconnect;
}
### Ende Subroutine Suche ###


Nur leider bekomme ich diese Fehler

syntax error at F:/Apache2/cgi-bin/dbsearch.pl line 96, near "else"
Missing right curly or square bracket at F:/Apache2/cgi-bin/dbsearch.pl line 117, at end of line
Execution of F:/Apache2/cgi-bin/dbsearch.pl aborted due to compilation errors.

Danke für eure Hilfe

lolipop 999

View full thread CGI+HTML+DB durchsuchen+TXT generieren