Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]850[/thread]

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



<< |< 1 ... 5 6 7 8 9 >| >> 85 Einträge, 9 Seiten
renee
 2006-12-17 13:52
#9207 #9207
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
vergleich mal die gross- und kleinschreibung zwischen statement und datenbank...
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 15:48
#9208 #9208
User since
2006-04-07
150 Artikel
BenutzerIn
[default_avatar]
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:
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.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
lolipop 999
 2006-12-17 15:53
#9209 #9209
User since
2006-04-07
150 Artikel
BenutzerIn
[default_avatar]
habe ich auch schon gelöst der SQL muss natürlich so ausshen:

my $stmt = qq~SELECT Tabelle1.Kundennummer, Tabelle1.Adresse, Tabelle1.Name,
Tabelle1.Telefonnummer, Tabelle2.Rechnungsbetrag
FROM Tabelle1, Tabelle2
WHERE Tabelle1.Kundennummer = Tabelle2.Kundennummer~;

nun zu meiner letzten frage
wie kann ich den rechnungsbetrag noch so verlinken, dass eine TXT auf popt auf der die Adresse der Name und die Rechnungssumme drauf steht

zb.: so
Name xxxxx
Adresse hhahah
Rechnungsbetrag 00000

danke für die hilfe

lolipop 999
renee
 2006-12-18 10:04
#9210 #9210
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
aus:
Code: (dl )
1
2
3
4
5
6
7
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);
}


Das hier:
Code: (dl )
1
2
3
4
5
6
7
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><a href="rechnung.cgi?id=%s" target="_blank">%s</a></TD>\n</TR>~,@data[0..3,1,4]);
}


Und dann rechnung.cgi:
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
#!/usr/bin/perl

use strict;
use warnings;
use CGI;
use DBI;

my $cgi = CGI->new();
my %params = $cgi->Vars();

my $dbh = DBI->connect('DBI:ODBC:driver=Microsoft Access-Treiber (*.mdb); dbq=Kunden.mdb') or die $DBI::errstr;
my $stmt = "SELECT Name, Adresse, Rechnungsbetrag FROM Tabelle1 WHERE Kundennummer = ?";
my $sth = $dbh->prepare($stmt) or die $dbh->errstr();
$sth->execute($params{id});

my %hash;
@hash{qw/Name Adresse Rechnungsbetrag} = $sth->fetchrow_array();

print qq~Content-type: text/plain
Content-Disposition: attachment; filename=$params{id}.txt

~;
print sprintf("%-20s %s",$_,$hash{$_}) for(keys %hash);;
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-18 16:33
#9211 #9211
User since
2006-04-07
150 Artikel
BenutzerIn
[default_avatar]
danke für die schnelle hilfe

bekomme aber folgende errors:

Bareword found where operator expected at F:/Apache2/cgi-bin/rechnung.cgi line 19, near "print qq~Content-type: text/plain", referer: http://localhost/cgi-bin/suche.pl
(Might be a runaway multi-line // string starting on line 17), referer: http://localhost/cgi-bin/suche.pl
\t(Do you need to predeclare print?), referer: http://localhost/cgi-bin/suche.pl
syntax error at F:/Apache2/cgi-bin/rechnung.cgi line 20, near "print qq~Content-type: text/plain\r, referer: http://localhost/cgi-bin/suche.pl
Content", referer: http://localhost/cgi-bin/suche.pl
syntax error at F:/Apache2/cgi-bin/rechnung.cgi line 22, near "txt\r, referer: http://localhost/cgi-bin/suche.pl
\r, referer: http://localhost/cgi-bin/suche.pl
~", referer: http://localhost/cgi-bin/suche.pl
Missing right curly or square bracket at F:/Apache2/cgi-bin/rechnung.cgi line 23, at end of line, referer: http://localhost/cgi-bin/suche.pl
Execution of F:/Apache2/cgi-bin/rechnung.cgi aborted due to compilation errors., referer: http://localhost/cgi-bin/suche.pl

Hier die beiden codes:

suche.pl

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.Adresse, 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><a href="rechnung.cgi?id=%s" target="_blank">%s</a></TD>\n</TR>~,@data[0..3,1,4]);
}

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

}

und rechnung.cgi
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
#!f:/Perl/bin/perl 

use strict;
use warnings;
use CGI;
use DBI;

my $cgi = CGI->new();
my %params = $cgi->Vars();

my $dbh = DBI->connect('DBI:ODBC:driver=Microsoft Access-Treiber (*.mdb); dbq=Kunden.mdb') or die $DBI::errstr;
my $stmt = "SELECT Name, Adresse, Rechnungsbetrag FROM Tabelle1 WHERE Kundennummer = ?";
my $sth = $dbh->prepare($stmt) or die $dbh->errstr();
$sth->execute($params{id});

my %hash;
@hash{qw/Name Adresse Rechnungsbetrag} = $sth->fetchrow_array();

print qq~Content-type: text/plain
Content-Disposition: attachment; filename=$params{id}.txt

~;
print sprintf("%-20s %s",$_,$hash{$_}) for(keys %hash);


Danke für die Hilfe

lolipop 999
renee
 2006-12-18 16:37
#9212 #9212
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Aus
Code: (dl )
@hash{qw/Name Adresse Rechnungsbetrag} = $sth->fetchrow_array();
muss
Code: (dl )
@hash{qw/Name Adresse Rechnungsbetrag/} = $sth->fetchrow_array();
werden...
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-18 16:44
#9213 #9213
User since
2006-04-07
150 Artikel
BenutzerIn
[default_avatar]
Super danke üfr die Hilfe

nur leider wird das txt nicht mit infos gefüllt

es zeigt nur die überschriften an.

Danke für die hilfe

lolipop 999
renee
 2006-12-18 16:49
#9214 #9214
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Mach in dem anderen Skript aus
Code: (dl )
@data[0..3,1,4]
das hier:
Code: (dl )
@data[0..3,0,4]


und in rechnung.cgi aus
Code: (dl )
print sprintf("%-20s %s",$_,$hash{$_}) for(keys %hash);
das hier:
Code: (dl )
print sprintf("%-20s %s\n",$_,$hash{$_}) for(keys %hash);
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-18 17:04
#9215 #9215
User since
2006-04-07
150 Artikel
BenutzerIn
[default_avatar]
nein leider auch nicht es sieht so aus jetzt

Adresse Name Rechnungsbetrag

Danke für die Hife

lolipop 999
renee
 2006-12-18 17:22
#9216 #9216
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wie hast Du's aufgerufen? Über einen Link oder direkt im Browser? Was steht im <a>-Tag drin? Wie lautet der Link?
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/
<< |< 1 ... 5 6 7 8 9 >| >> 85 Einträge, 9 Seiten



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