Thread Sytax error (1 answers)
Opened by Relais at 2004-08-24 23:18

frank_D
 2004-08-24 22:34
#28291 #28291
User since
2004-08-20
6 Artikel
BenutzerIn
[default_avatar]
Halihalo,
ich wollte ein Skript schreiben, womit ich eine Datenbank erstellen und mit einer Suchfunktion in dieser nach Namen suchen kann,dabei bekam ich immer erst die Fehlermeldung
Global symbol requires explicit package name, diese konnte ich "weggooglen",dafür habe ich jetzt einen sytaxerror in Zeile 65, die quasi "my @data" heißt.
Kann mir vielleicht jemand weiterhelfen?
Hier das Skript:

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
125
126
127
128
129
130
131
132
133
134
#!c:/Perl/bin/perl 
use strict;
my @data;

use CGI qw(:standard);
use CGI::Carp qw(fatalsToBrowser);
use DBI;
use CGI;
my $cgi = CGI->new;
print $cgi->header();


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

$CGI = new CGI();

##Suche oder Eintrag##

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

#Start Subroutine Suche

sub suche {
my $nachname = param("nachname");
my $abteilung = param("abt");

$DBH = DBI->connect("DBI:CSV:db_mitarbeiter=c:/apachefriends/xampp/htdocs/cgi-bin")
or die "Konnte keine Verbindung zur Datenbank herstellen:$!";

$STH = $DBH->prepare("SELECT * FROM db_mitarbeiter
WHERE Nachname = '$nachname' AND Abteilung = '$abteilung'")
or die "Konnte SQL-Statement nicht bereitstellen:$!";

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

#Treffer

if ($STH->rows != 0){
print "Content-type: text/html\n\n";
print qq~;

<html>
<head>
<title>Antwort</title>
</head>
<body>
<center>
<h1>Suchergebnis</h1>
<hr>
<table border>
<tr>
<td width="200"><b>Familienname:</b></td>
<td width="100"><b>Vorname:</b></td>
<td width="200"><b>Abteilung:</b></td>
<td width="100"><b>Telefon:</b></td>
</tr>
~

my @data;

while (@data = $STH->fetchrow_array()) {
my $familienname = $data[0];
my $vorname = $data[1];
my $abt = $data[2];
my $telefon = $data[3];

print qq§<tr>\n<td><b>$familienname</b></td>\n<td>$vorname</td>
\n<td>$abt</td>\n<td>$telefon</td>\n</tr>\n§;

}

print qq§</table>\n<p><a href="formular1.html">Neue Suche</a></p>
\n<hr>\n</center>\n</body>\n</html>§;

}

##Keine Treffer

else {
print qq~
print "Content-type:text/html\n\n";

<html>
<head>
<title>Antwort</title></head>
<body>
<p>Leider brachte die Suche keine Ergebnisse!</p>
<hr>
<p><a href="[URL=http://localhost/formular1.html>Neue]http://localhost/formular1.html">Neue[/URL] Suche!</a></p></body></html>
~
}

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

#Start Subroutine Eintragen

sub eintragen{

my ($nachname, $vorname, $abt, $telefon)=(param('nachname'),
param('vorname'), param('abt'),param('telefon'));

$DBH = DBI->connect("DBI:CSV:db_mitarbeiter=c:/apachefriends/xampp/cgi-bin")
or die "Konnte keine Verbindung zur Datenbank herstellen:$!";

$STH = $DBH->do("INSERT INTO db_mitarbeiter
VALUES ('$nachname','$vorname','$abt','$telefon')")
or die "Konnte SQL-Staement nicht bereitstellen:$!";

#Antwortseite

print qq~
print "Content-type:text/html\n\n";

print '<html>';
print '<head>';
print '<title>Antwort</title>';
print '</head>';
print '<body>';
print "<h4>Datenbankeintrag:</h4>";
print "<hr>";
print "<p><b>$nachname</b>,$vorname, $abt, $telefon</p>";
print "<hr>";
print "<p><a href="formular2.html">Neuer Eintrag!</a></p>";
print "<hr>";
print "</body>";
print "</html>";


Vielen dank schonmal in vorraus!!

Gruß

Edit: [Code]-Tags hinzugefügt.\n\n

<!--EDIT|Relais|1093375372-->

View full thread Sytax error