Schrift
[thread]3509[/thread]

suchen und vergleichen (Seite 6)



<< |< 1 ... 3 4 5 6 7 8 9 ... 13 >| >> 125 Einträge, 13 Seiten
Kathrin
 2005-01-09 16:10
#32703 #32703
User since
2004-12-15
158 Artikel
BenutzerIn
[default_avatar]
esskar
ja ich hab deine vorschläge eingeschleust...

leute hier ist nochmal das ganze script. ich hoffe jemand hilft mir das zum laufen zum bringen... Es muss morgen auf dem Server laufen...
http://www.oook.de/index.cgi?BH3
und hier die indexseite:
http://www.oook.de/index.cgi?index
renee
 2005-01-09 17:37
#32704 #32704
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=renee,08.01.2005, 11:48]Was hat Dir die Testausgabe denn angezeigt??[/quote]
Diese Frage hast Du noch nicht beantwortet...
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/
Kathrin
 2005-01-09 20:10
#32705 #32705
User since
2004-12-15
158 Artikel
BenutzerIn
[default_avatar]
ach so sorry renee. Tja ich hab noch nie mit dem Dumper gearbeitet. keine Ahnung wie man da vorgeht...
Wäre es nicht möglich, dass wir nicht nach dem Fehler suchen, sondern dass jemand mir bitte bitte den letzten schritt programmiert???
Strat
 2005-01-09 23:07
#32706 #32706
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
der dumper geht ganz einfach:
Code: (dl )
1
2
3
4
use Data::Dumper;
$Data::Dumper::Indent = 1; # fuer die schoenheit
.....
print Dumper($datenref); # gibt den inhalt der datenstruktur am bildschirm aus
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Kathrin
 2005-01-10 17:37
#32707 #32707
User since
2004-12-15
158 Artikel
BenutzerIn
[default_avatar]
hat denn keiner Zeit? ich zahl auch demjenigen der zeit hat 100Euro... ich hoffe das reicht
esskar
 2005-01-10 17:43
#32708 #32708
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
poste das script bitte nochmal hier im forum;
ich kann mit der formatierung von oook nix anfangen
esskar
 2005-01-10 22:46
#32709 #32709
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
hab es glaube ich

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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
#!/usr/bin/perl

use strict;
use warnings;
use DBI;
use CGI;
use CGI::Carp qw/fatalsToBrowser warningsToBrowser/;
use Data::Dumper;

my $cgi = new CGI;

my $suchen=$cgi->param("suchen") || "";
my $eintragen=$cgi->param("eintragen") || "";
my $eintr=$cgi->param("eintr") || "";
my $identnr=$cgi->param("identnr") || "";
my $head_de=$cgi->param("head_de") || "";
my $deutsch=$cgi->param("deutsch") || "";
my $head_en=$cgi->param("head_en") || "";
my $englisch=$cgi->param("englisch") || "";
my $head_fr=$cgi->param("head_fr") || "";
my $franz=$cgi->param("franz") || "";
my $check1=$cgi->param("check1") || "";
my $check2=$cgi->param("check2") || "";
my $check3=$cgi->param("check3") || "";
my $check4=$cgi->param("check4") || "";
my $ersteller=$cgi->param("ersteller") || "";
my $werk=$cgi->param("werk") || "";
my $doctyp=$cgi->param("doctyp") || "";
my $docname=$cgi->param("docname") || "";

if($doctyp eq 'EI')
{
my $db="DBI:mysql:produkte";
my $user="lidos";
my $pass="lidos";
my $dbh = DBI->connect($db,$user,$pass) or die $DBI::errstr;

my $statement_select="SELECT docname FROM tbl0011990 where docname like ?";
my $sth_select=$dbh->prepare($statement_select) or die $DBI::errstr;

my $poss_docname=$identnr;

$sth_select->execute($poss_docname) or die $DBI::errstr;
my $i=1;
my ($treffer)=$sth_select->fetchrow_array();
while ($treffer)
{
$poss_docname = $identnr.'_'.$i;
$i++;
$sth_select->execute($poss_docname) or die $DBI::errstr;
($treffer)=$sth_select->fetchrow_array();
}
$docname =$poss_docname;
$sth_select->finish();
$dbh->disconnect();
}

my ($day, $mon, $year)= (localtime(time))[3..5];
my $date= sprintf ("%04d-%02d-%02d",$year+1900,$mon+1,$day);

main();

sub main
{
my $cgi = CGI->new();
print $cgi->header(-type => 'text/html');
if ($suchen)
{
if($identnr =~m/^\<d{7,10}[AB]?$/) {
suchen()
}
else
{
print "<HTML>\<n";
print "<head><title>FEHLER</title></head>\<n";
print "<body>\<n";
print "Sie haben keine gültige Identnummer eingegeben.\<n";
print '<p><input type="button" value="Zurck" onClick="history.back()">';
}
}
elsif ($eintragen)
{
such_eintr();
}
elsif ($eintr)
{
if ($identnr =~m/^\<d{7,10}[AB]?$/)
{
tab_einf()
}
else
{
print "<HTML>\<n";
print "<head><title>FEHLER</title></head>\<n";
print "<body>\<n";
print "Sie haben keine gültige Identnummer eingegeben.\<n";
print '<p><input type="button" value="Zurck"
onClick="history.back()">';
}
}
}

sub ausgabe
{
print "<HTML>\<n";
print "<head><title>Neueintrag</title></head>\<n";
print "<body>\<n";
print "Ihr folgender Eintrag wurde gespeichert:\<n";
print "<ul> \<n";
print "<li>Ident-Nummer: <b>$identnr</b>\<n";
print "<li>Doctype: <b>$doctyp</b>\<n";
print "<li>Docname: <b>$docname</b>\<n";
print "<li>HL auf Deutsch: <b>$head_de</b>\<n";
print "<li>Ihr Text auf Deutsch: <b>$deutsch</b>\<n";
print "<li>HL auf Englisch: <b>$head_en</b>\<n";
print "<li>Ihr Text auf Englisch: <b>$englisch</b>\<n";
print "<li>HL auf Französisch: <b>$head_fr</b>\<n";
print "<li>Ihr Text auf Französisch: <b>$franz</b>\<n";
print "Es betrifft die Maschinen <b>$check1, $check2, $check3, $check4</b> \<n";
print "Erstellt wurde es vom <b>$ersteller $werk</b> am <b>$date</b>\<n";
print '<p><a href="http://127.0.0.1/">Weitere Bestellhinweise</a><p>';
}

sub tab_einf
{
my $db="DBI:mysql:produkte";
my $user="lidos";
my $pass="lidos";
my $dbh = DBI->connect($db,$user,$pass) or die $DBI::errstr;

my $statement_insert="INSERT INTO tbl0011990 VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?)";
my $sth_insert=$dbh->prepare($statement_insert) or die $DBI::errstr;
if ($head_de)
{
$sth_insert->execute($identnr,'DE',$doctyp,$docname,$head_de,$deutsch,$date,$ersteller,$werk,$check1,$check2,$check3,$check4) or die $DBI::errstr;
}
if ($head_en)
{
$sth_insert->execute($identnr,'EN',$doctyp,$docname,$head_en,$englisch,$date,$ersteller,$werk,$check1,$check2,$check3,$check4) or die $DBI::errstr;
}
if ($head_fr)
{
$sth_insert->execute($identnr,'FR',$doctyp,$docname,$head_fr,$franz,$date,$ersteller,$werk,$check1,$check2,$check3,$check4) or die $DBI::errstr;
}

ausgabe();

$sth_insert->finish();
$dbh->disconnect();
}


sub suchen
{
my $db="DBI:mysql:produkte";
my $user="lidos";
my $pass="lidos";
my $dbh = DBI->connect($db,$user,$pass) or die $DBI::errstr;
my $statement_suchen="SELECT * FROM tbl0011990 where ident_nr = '$identnr'";
my $sth_suchen=$dbh->prepare($statement_suchen) or die $DBI::errstr;
$sth_suchen->execute;
my %hash;
my $daten_ref;
while (my @row = $sth_suchen->fetchrow_array())
{
$hash{identnr} = $row[0];
$hash{doctyp} = $row[2];
$hash{docname} = $row[3];
$hash{head_de} = $row[4] if ($row[1] eq 'DE');
$hash{head_en} = $row[4] if ($row[1] eq 'EN');
$hash{head_fr} = $row[4] if ($row[1] eq 'FR');
$hash{deutsch} = $row[5] if ($row[1] eq 'DE');
$hash{englisch} = $row[5] if ($row[1] eq 'EN');
$hash{franz} = $row[5] if ($row[1] eq 'FR');
$hash{ersteller}= $row[7];
$hash{werk} = $row[8];
$hash{check1} = $row[9];
$hash{check2} = $row[10];
$hash{check3} = $row[11];
$hash{check4} = $row[12];

$daten_ref -> { $hash{$identnr} } -> { $hash{$docname} } = {%hash};
}

foreach my $identnr ( keys %$daten_ref )
{
doc_vorhanden ($identnr, $daten_ref, keys %{ $daten_ref -> {$identnr} });
}

$sth_suchen->finish();
$dbh->disconnect();
}

sub such_eintr
{
my (%param) = @_;
my $param = \%param;

print "<HTML>\<n";
print "<HEAD><TITLE>FORMULAR</TITLE>";
print "</HEAD>\<n<BODY>\<n";
if ($suchen){
print '<span style="font-size:20pt"><center><b>Dokumententyp:'.$param->{doctyp}.'</b></center></span>';
}
elsif ($eintragen) {
print '<span style="font-size:20pt"><center><b>Dokumententyp: '.$doctyp.'</b></center></span>';
}
print '<form method="POST" action="/cgi-bin/frontl.cgi">';
print "<p>Ident-Nummer:";
print '<INPUT name="identnr" size="20" maxlength="15" value='.$identnr.'>';
if ($suchen) {
print '<INPUT name="suchen" TYPE="submit" VALUE="Suchen">';
}
print "<p>DE:<br>";
print '<input name="head_de" type="text" size="50" value='.$param->{head_de}.'><br>';
if ($doctyp eq 'EI') {
print '<textarea name="deutsch" cols="50" rows="5">'.$param->{deutsch}.'</textarea>';
}
print "<p>EN:<br>";
print '<input name="head_en" type="text" size="50" value='.$param->{head_en}.'><br>';
if ($doctyp eq 'EI') {
print '<textarea name="englisch" cols="50" rows="5">'.$param->{englisch}.'</textarea>';
}
print "<p>FR:<br>";
print '<input name="head_fr" type="text" size="50" value='.$param->{head_fr}.'><br>';
if ($doctyp eq 'EI') {
print '<textarea name="franz" cols="50" rows="5">'.$param->{franz}.'</textarea>';
}
print '<p>Betrifft Maschinen: ';
if ($param->{check1}==1) {
print '<INPUT name="check1" TYPE="checkbox" VALUE="LHB" checked>LHB'}
else { print '<INPUT name="check1" TYPE="checkbox" VALUE="LHB">LHB'}
if ($param->{check2}==1) {
print '<INPUT name="check2" TYPE="checkbox" VALUE="LHB" checked>LFR'}
else { print '<INPUT name="check2" TYPE="checkbox" VALUE="LHB">LFR'}
if ($param->{check3}==1) {
print '<INPUT name="check3" TYPE="checkbox" VALUE="LHB" checked>LWT'}
else { print '<INPUT name="check3" TYPE="checkbox" VALUE="LHB">LWT'}
if ($param->{check4}==1) {
print '<INPUT name="check4" TYPE="checkbox" VALUE="LHB" checked>LBH'}
else { print '<INPUT name="check4" TYPE="checkbox" VALUE="LHB">LBH'}
print '<p>Ersteller:';
print '<INPUT size="15" type="text" name="ersteller" value="'.$param->{ersteller}.'" readonly> <<<
<select onchange="ersteller.value=options[selectedIndex].value">
<option value="M.Kapanke">M.Kapanke</option>
<option value="G.Goettelmann">G.Goettelmann</option>
<option value="T.Doppler">T.Doppler</option>
<option value="F.Waldhart">F.Waldhart</option>
</select>';
print '&nbsp&nbsp&nbsp Werk:
<SELECT name="werk" SIZE=1 ALIGN=left>
<OPTION selected>'.$param->{werk}.'
<OPTION>LHB
<OPTION>LFR
<OPTION>LBH
<OPTION>LWT
</SELECT><p>';
if ($eintragen) {
if ($doctyp eq 'SI') {
print '<p>Dokumentenname: <input size="15" name="docname" value='.$docname.'>';
}
print '<p><INPUT name="eintr" TYPE="submit" VALUE="Eintragen">';
}
elsif ($suchen) {
print '<p>Dokumentenname: <input size="15" name="docname" value='.$param->{docname}.'>';
}
print '<input name="doctyp" type="hidden" value='.$doctyp.'>';
print '<input name="neu" type="button" value="Neu" onClick=location.href="http://127.0.0.1/">';
print "</FORM>
</BODY>
</HTML>";
}

sub id_vorhanden
{
print <<ENDL;
<HTML>\<n
<head><title>Meldung</title></head>\<n
<body>\<n
Die von Ihnen angegebene Identnummer ($identnr) ist bereits vergeben.\<n
<p><input type="button" value="Zurck" onClick="history.back()">
ENDL
}

sub doc_vorhanden
{
my ($identnr, $daten_ref, @docnames) = @_;

print "<html>\<n";
print "<head><title>FORMULAR</title></head>\<n";
print "<body>";
print '<span style="font-size:20pt"><center><b>Bestellhinweis</b></center></span>';
print '<form method="POST" action="/cgi-bin/frontl.cgi">';
print "<p>Ident-Nummer:";
print '<input name="identnr" size="20" maxlength="15" value='.$identnr.'>';
print '<input name="suchen" TYPE="submit" VALUE="Suchen">';
print '<p>';
print '<table border="1" rules="groups">
<colgroup>
<col width="50">
<col width="80">
<col width="300">
<col width="50">
</colgroup>
<thead>
<tr>
<th>doc_typ</th>
<th>doc_name</th>
<th>headline</th>
</tr></thead>
<tbody>';
foreach my $docname (@docnames)
{
my $ptr = $daten_ref->{$docname};
my $doctyp = $ptr->{doctyp};
my $head_de = $ptr->{head_de};

print '<tr>';
print ' <td>'.$doctyp.'</td>
<td>'.$docname.'</td>

<td>'.$head_de.'</td>

<td><input type="button" value="Auswahl" onClick=""></td>

</tr>';
}
print '</tbody></table>';
print '<p><p><input type="button" value="Zurck" onClick="history.back()">';
print "</form>
</body>
</html>";
}
Strat
 2005-01-10 23:23
#32710 #32710
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
habe mal schnell ueber den code geschaut, und folgende stellen kommen mir komisch vor:

1. nach dem if-Block rufst du main() auf, wo nochmal CGI->new stattfindet; vielleicht das CGI->new aus dem Block und der subroutine herausziehen und somit nur einmal ausfuehren...

2.
Code: (dl )
    my $statement_select="SELECT docname FROM tbl0011990 where docname like ?";

ich vermute, da ist anstelle des like eher ein = angebracht

3.
Code: (dl )
        if($identnr =~m/^\<d{7,10}[AB]?$/) {

sollen da wirklich 7-10 d's vorkommen? oder ist da
Code: (dl )
m/^<\d{7,10}[AB]?$/

gemeint? (7-10 ziffern) (< braucht man normalerweise nicht zu quoten, ausser eventuell, wenn man m<...> als trennzeichen fuer den regulaeren ausdruck verwendet; aber meistens nicht mal dann...)

4. ebenso ein paar zeilen tiefer

5. beim ->execute fehlt eine fehlerabfrage...
Code: (dl )
1
2
    $sth_suchen->execute 
or die "Error: couldn't execute $statement_suchen: $DBI::errstr\n";

das ist gerade bei mysql wichtig, weil erst beim execute alles an die datenbank geschickt wird, und also dort erst dann die eigentlichen db-fehler auftreten koennen

6. $hash{$docname} } = {%hash};
da ist
$hash{$docname} = \%hash; schneller, weil da nicht umkopiert wird (dann musst du aber my %hash = (); in die while-schleife reinschreiben und nicht ausserhalb, weil sonst %hash eventuell werte zwischen den einzelnen while-durchlaeufen behaelt, und das vielleicht mal zu fehlern fuehren kann...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Kathrin
 2005-01-10 23:54
#32711 #32711
User since
2004-12-15
158 Artikel
BenutzerIn
[default_avatar]
danke dir strat...
esskar
 2005-01-11 04:28
#32712 #32712
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
ich werde aus deinem code hinten und vorne nicht schlau; (hab jetzt mal testumgebung aufgesetzt)
die einzige möglichkeit besteht, wenn ich das ding komplett überarbeite; aber das ist wohl nicht sinn der sache; ich kann es aber tun
btw. mir geld zu überweisen wäre eh unnötig: wenn du es überhaupt loswerden willst, kannst du es dann an strat überweisen (hilfe für den server) oder den flutopfern spenden;
aber eigentlich will hier keiner geld für seine leistung (die er hier vollbringt)

aber: du hast ein praktikum gemacht; da sollte es wohl nicht schlimm sein, wenn du der code nicht läuft; das liegt wohl nicht an dir, sondern daran, dass die leute, die dir das praktikum angeboten haben, nicht in der lage sind, dir etwas beizubringen.
also, brauchst du eigentlich morgen nicht auf "krank" machen. :) nur etwas mut und einfach die sache klären! :)\n\n

<!--EDIT|esskar|1105410550-->
<< |< 1 ... 3 4 5 6 7 8 9 ... 13 >| >> 125 Einträge, 13 Seiten



View all threads created 2004-12-16 16:21.