Schrift
[thread]850[/thread]

CGI+HTML+DB durchsuchen+TXT generieren (Seite 7)



<< |< 1 ... 4 5 6 7 8 9 >| >> 85 Einträge, 9 Seiten
renee
 2006-12-17 11:35
#9197 #9197
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Lass die
Code: (dl )
1
2
3
4
5
6
7
my $antwort;
my @data;
my $name;
my $kundennummer;
my $adresse;
my $rechnungsbetrag;
my $telefonnummer;
nach
Code: (dl )
my $cgi = CGI->new();
weg. Das ist überflüssig...

Aus
Code: (dl )
if (params{suchanfrage}){


musst Du
Code: (dl )
if ($params{suchanfrage}){
machen...

Was sind die genauen Fehlermeldungen??
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/
Ronnie
 2006-12-17 11:36
#9198 #9198
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Zeile 112 fehlt ein ;.
Zeile 26: siehe Antwort von renée\n\n

<!--EDIT|Ronnie|1166348255-->
topeg
 2006-12-17 11:45
#9199 #9199
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
wenn du am, anfang das "@data wegläst" mußt du es hier
Code: (dl )
while (@data = $sth->fetchrow_array())
initialisieren. So:
Code: (dl )
while (my @data = $sth->fetchrow_array())
lolipop 999
 2006-12-17 12:16
#9200 #9200
User since
2006-04-07
150 Artikel
BenutzerIn
[default_avatar]
so ich habe jetzt alles gamacht was ihr mir geraten habt

nun kommen folgende fehler
Global symbol "$name" requires explicit package name at F:/Apache2/cgi-bin/suche.pl line 80.
syntax error at F:/Apache2/cgi-bin/suche.pl line 106, near "print"
Global symbol "$kundennummer" requires explicit package name at F:/Apache2/cgi-bin/suche.pl line 106.
Global symbol "$adresse" requires explicit package name at F:/Apache2/cgi-bin/suche.pl line 106.
Global symbol "$name" requires explicit package name at F:/Apache2/cgi-bin/suche.pl line 106.
Global symbol "$telefonnummer" requires explicit package name at F:/Apache2/cgi-bin/suche.pl line 106.
Global symbol "$rechnungsbetrag" requires explicit package name at F:/Apache2/cgi-bin/suche.pl line 106.
Execution of F:/Apache2/cgi-bin/suche.pl aborted due to compilation errors.

Hier der Code:



Danke für die Hilfe
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
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&auml;hlt';
}

$dbh->disconnect();

### Start Subroutine Suche ###

sub suche{
my ($cgi,$dbh,%params) = @_;

my $stmt = qq~SELECT Tabelle1.Kundennummer, Tabelle1.Name,
Tabelle1.Telefon, Tabelle2.Rechnungsbetrag
FROM Tabelle1 JOIN Tabelle2
ON 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 '$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

}
topeg
 2006-12-17 12:34
#9201 #9201
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Zeile 80:
Code: (dl )
<P>Leider brachte die Suche nach '$name' keine Ergebnisse!</P>

sollte das nicht eher so heißen:
Code: (dl )
<P>Leider brachte die Suche nach '$params{name}' keine Ergebnisse!</P>
Ronnie
 2006-12-17 12:35
#9202 #9202
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
syntax error at F:/Apache2/cgi-bin/suche.pl line 106, near "print"

wurde oben schon beantwortet!\n\n

<!--EDIT|Ronnie|1166351748-->
pq
 2006-12-17 12:45
#9203 #9203
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
[quote=lolipop 999,17.12.2006, 10:22]Line26
Code: (dl )
if (params{suchanfrage}){
[/quote]
renee hat hier ein dollarzeichen vergessen. aber die tatsache, dass es
dir nicht auffaellt, obwohl in der zeile drunter
elsif($params{eintrag}){
steht, zeugt schon davon, dass du so gar keinen bock hast, irgendwas zu
verstehen. du wuerdest wahrscheinlich auch system "rm -rf /"
blind in dein skript einbauen, wenn dir jemand sagt, es hilft.
es wird nicht dein ganzes leben einen renee geben, der dir fertige skripte
zum abtippen schreibt.\n\n

<!--EDIT|pq|1166352503-->
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
lolipop 999
 2006-12-17 12:51
#9204 #9204
User since
2006-04-07
150 Artikel
BenutzerIn
[default_avatar]
So ich habe jetzt alles ausgebessert

ich rufe die suche.pl auf dann kommt

Keine Aktion ausgewählt

Das ist klar da von formular1.html keine daten übergeben werden.

ich öffne formular1.html gebe den suchbegriff ein und dann kommt bei der suche.pl

Microsoft][ODBC Microsoft Access Driver] Syntaxfehler in FROM-Klausel. (SQL-42000)(DBD: st_prepare/SQLPrepare err=-1) at F:/Apache2/cgi-bin/suche.pl line 40.

Hier mein aktueller Code:

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
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&auml;hlt';
}

$dbh->disconnect();

### Start Subroutine Suche ###

sub suche{
my ($cgi,$dbh,%params) = @_;

my $stmt = qq~SELECT Tabelle1.Kundennummer, Tabelle1.Name,
Tabelle1.Telefon, Tabelle2.Rechnungsbetrag
FROM Tabelle1 JOIN Tabelle2
ON 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
renee
 2006-12-17 13:20
#9205 #9205
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Mach mal aus
Code: (dl )
1
2
3
4
   my $stmt = qq~SELECT Tabelle1.Kundennummer, Tabelle1.Name,
Tabelle1.Telefon, Tabelle2.Rechnungsbetrag
FROM Tabelle1 JOIN Tabelle2
ON Tabelle1.Kundennummer = Tabelle2.Kundennummer~;


das hier
Code: (dl )
1
2
3
4
   my $stmt = qq~SELECT Tabelle1.Kundennummer, Tabelle1.Name,
Tabelle1.Telefon, Tabelle2.Rechnungsbetrag
FROM Tabelle1, Tabelle2
WHERE Tabelle1.Kundennummer = Tabelle2.Kundennummer~;


Wenn das nicht hilft, dann poste mal die Datenbankstruktur\n\n

<!--EDIT|renee|1166354516-->
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/
lolipop 999
 2006-12-17 13:27
#9206 #9206
User since
2006-04-07
150 Artikel
BenutzerIn
[default_avatar]
aslo kommt gleiche fehlermeldung

die DB heißt Kunden

sie beinhaltet
Tabelle 1 mit Felder:
Kundennummer
Adresse
Name
Telefonnummer

Tabelle2 mit Felder:
Kundennummer
rechnungsbetrag

Danke für die Hilfe

lolipop 999
<< |< 1 ... 4 5 6 7 8 9 >| >> 85 Einträge, 9 Seiten



View all threads created 2006-12-03 10:38.