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

suchen und vergleichen (Seite 4)



<< |< 1 2 3 4 5 6 7 ... 13 >| >> 125 Einträge, 13 Seiten
Kathrin
 2004-12-23 10:00
#32683 #32683
User since
2004-12-15
158 Artikel
BenutzerIn
[default_avatar]
Hey Leute ich muss heute unbedingt fertig werden und ich schaff es alleine nie im Leben! Mein Betreuer kommt heute wieder!!
Bitte hat keiner Zeit? Natürlich zahl ich auch dafür was ihr verlangt... Ist ja nicht mehr viel übrig geblieben..\n\n

<!--EDIT|Kathrin|1103788875-->
Relais
 2004-12-23 10:23
#32684 #32684
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
ändere
Code: (dl )
1
2
                }
such_eintr(\%hash);
in folgendes
Code: (dl )
1
2
       such_eintr(\%hash);
}
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
Taulmarill
 2004-12-23 10:24
#32685 #32685
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
hm, also, seh ich das richtig, dass immer nur das letzte element aus der produkt-datenbank gezogen wird? das dürfte, wie esskar schon gesagt hat, daran liegen, dass der %hash bei jedem schleifendurchlauf überschrieben wird. ich würde folgendes vorschlagen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
my @produkte;
while (my @row = $sth_suchen->fetchrow_array()) {
my %hash;
$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];
push @produkte, \%hash;
}

damit hast du dann alle ergebnisse aus der produktdatenbank in @produkte (<= array of hashes).
kommst du damit dann weiter?
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
Kathrin
 2004-12-23 10:33
#32686 #32686
User since
2004-12-15
158 Artikel
BenutzerIn
[default_avatar]
also wenn von der jeweiligen identnr nur eines vorhanden ist (quasi auch nur ein docname) dann wird %hash richtig in such_eintr() eingetragen. da gibt es keine probleme.
nur wenn nun mehrere docnamen bei gleicher identnr vorhanden sind, wird einfach das letzte genommen und in doc_vorhanden() eingefügt. Es soll jedoch alle verschiedenen, zu der identnr dazugehörigen docnamen in doc_vorhanden() weitergeben um dort dann eins auswählen zu können...
Relais
 2004-12-23 11:24
#32687 #32687
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=Kathrin,23.12.2004, 09:33]also wenn von der jeweiligen identnr nur eines vorhanden ist (quasi auch nur ein docname) dann wird %hash richtig in such_eintr() eingetragen. da gibt es keine probleme.
nur wenn nun mehrere docnamen bei gleicher identnr vorhanden sind, wird einfach das letzte genommen und in doc_vorhanden() eingefügt. Es soll jedoch alle verschiedenen, zu der identnr dazugehörigen docnamen in doc_vorhanden() weitergeben um dort dann eins auswählen zu können...[/quote]
Da fehlt uns jetzt der KONTEXT in Form dessen, was in der Datenbank liegt. Was ist im folgenden Code-Block in "$doc"?

Code: (dl )
1
2
3
4
5
6
7
my %hash_docs;
while(my ($doc) = $sth_docnames->fetchrow_array()){
$hash_docs{$doc}++;
}
if(scalar(keys(%hash_docs)) > 1){
doc_vorhanden(%hash_docs);
}


Denn das ist die Information, die doc_vorhanden() enthält. Damit muß es also klarkommen.

Was ist doc_vorhanden() btw.?
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
Kathrin
 2004-12-23 11:36
#32688 #32688
User since
2004-12-15
158 Artikel
BenutzerIn
[default_avatar]
doc_vorhanden() sieht folgendermaßen aus:
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
sub doc_vorhanden {
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.'>&nbsp';
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>
<tr> ## Für jeden verschiedenen docnamen neue Zeile
<td>'.$doctyp.'</td>
<td>'.$docname.'</td>
<td>'.$head_de.'</td>
<td><input type="button" value="Auswahl" onClick=""></td>
</tr></tbody></table>';
print '<p><p><input type="button" value="Zur&uuml;ck" onClick="history.back()">';
print "</form>
</body>
</html>";
}


in doc_vorhanden() wird doctyp, docname,headline angezeigt. Am Ender der Zeile ist ein button, der dann den jeweiligen ausgesuchten docnamen komplett wieder aus der DB aussucht und in such_eintr() einfügt
Relais
 2004-12-23 11:52
#32689 #32689
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=Kathrin,23.12.2004, 10:36]in doc_vorhanden() wird doctyp, docname,headline angezeigt. Am Ender der Zeile ist ein button, der dann den jeweiligen ausgesuchten docnamen komplett wieder aus der DB aussucht und in such_eintr() einfügt[/quote]
Nach dem Code, den Du uns gezeigt hast, kann das nicht stimmen. Die Werte, die Du meinst anzeigen zu wollen, werden nicht übergeben, müssen daher leer bleiben.
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
Kathrin
 2004-12-23 11:57
#32690 #32690
User since
2004-12-15
158 Artikel
BenutzerIn
[default_avatar]
@relais du sagst es... Aber es sollte so sein...
erstens werden die werte nicht übergeben, und zweitens werden nicht alle verschiedenen docnamen angezeigt...
das ist ja gerade mein Problem
Relais
 2004-12-23 11:58
#32691 #32691
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
Dein Code kommentiert:

Code: (dl )
1
2
3
4
5
6
7
my %hash_docs; # jetzt ist %hash_docs leer!
while(my ($doc) = $sth_docnames->fetchrow_array()){
$hash_docs{$doc}++; # jetzt wird die Value zum Key "$doc" (was ist das!? um eins hochgezählt.
}
if(scalar(keys(%hash_docs)) > 1){ # Wenn mehr als ein Key in %hash_docs ist
doc_vorhanden(%hash_docs); Wird der Hash %hash_docs an doc_vorhanden() übergeben, aber doc_vorhanden interessiert sich nicht für die Übergabeparameter. Wenn bis hierhin nicht schon grosses Chaos ausgebrochen ist, jetzt geht schon gar nix mehr.
}
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
Kathrin
 2004-12-23 12:05
#32692 #32692
User since
2004-12-15
158 Artikel
BenutzerIn
[default_avatar]
hmm ok wie heißt es richtig? kannst du mir weiterhelfen?
<< |< 1 2 3 4 5 6 7 ... 13 >| >> 125 Einträge, 13 Seiten



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