Schrift
[thread]3457[/thread]

Ausgabe von Einträgen



<< >> 9 Einträge, 1 Seite
Tom
 2004-05-22 18:04
#32165 #32165
User since
2003-09-20
470 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo,

Ich habe meine Einträge bis jetzt immer über eine Schleife ausgegeben, jetzt brauche ich aber eine Möglichkeit alle Einträge auszugeben ohne dafür eine Schleife zu verwenden.

Ist das möglich???

Tom
Computerprobleme??? -> http://www.weber-computerhilfe.de

Fordere keine Anerkennung!
Zeige was und man wird Dich kennen
steffenw
 2004-05-22 18:44
#32166 #32166
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
Meinst Du als Schleife so etwas wie
Code: (dl )
1
2
3
while (local $_ = $sth->fetchrow_hashref('NAME_uc'))
{ print join("\T", @{$_}{qw/FELD1 FELD2 FELD3/}), "\n";
}

Man kann die Daten auch erst einsammeln.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
my @data;
while (local $_ = $sth->fetchrow_hashref('NAME_uc'))
{ push @data, {%{$_}};
}
print
 $data[7]->{FELD1},
 "\T",
 $data[5]->{FELD2},
 "\T",
 $data[7]->{FELD3},
 "\n";

Und dann gibt es ja auch noch die fetchall_... - Methoden.\n\n

<!--EDIT|steffenw|1085237438-->
$SIG{USER} = sub {love 'Perl' or die};
Tom
 2004-05-22 19:36
#32167 #32167
User since
2003-09-20
470 Artikel
BenutzerIn
[Homepage] [default_avatar]
Als Schleife habe ich das so

Code: (dl )
1
2
3
4
5
6
7
while($ref = $sth->fetchrow_hashref()) {

$template->param(EVENT_ID => $ref->{'event_id'});
$template->param(NAME => $ref->{'name'});

print $template->output;
};


Wie sieht das mit der fetchall_...-Methode aus???

Danke
Computerprobleme??? -> http://www.weber-computerhilfe.de

Fordere keine Anerkennung!
Zeige was und man wird Dich kennen
steffenw
 2004-05-22 23:11
#32168 #32168
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
Code: (dl )
1
2
3
4
5
# NAME_uc heißt, daß die event_id im Hash als EVENT_ID steht usw.
while($ref = $sth->fetchrow_hashref('NAME_uc')) {
 $template->param($_ => $ref->{$_}) for qw/EVENT_ID NAME/;    
 print $template->output;
};

sieht doch schon mal besser aus - oder.
Wenn Du alle abgefragten Namen so hinbekommst, daß sie passen wäre
Code: (dl )
1
2
3
4
while($ref = $sth->fetchrow_hashref('NAME_uc')) {
 $template->param($_ => $ref->{$_}) for keys %{$ref};    
 print $template->output;
};

noch einfacher.

Die Dokumentation zu DBI findest Du hier:
http://search.cpan.org/~timb/DBI-1.42/DBI.pm
Da steht dann auch fetchall_arrayref und fetchrow_hashref oder auch selectall_arrayref und selectall_hashref. Aber ob die Datenstruktur dann so ist, wie sie Dir gefällt das probiere mit:
Code: (dl )
1
2
use Data::Dumper;
print Dumper $arrayref, $hashref, ...;

aus.\n\n

<!--EDIT|steffenw|1085333308-->
$SIG{USER} = sub {love 'Perl' or die};
Tom
 2004-05-23 15:43
#32169 #32169
User since
2003-09-20
470 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ich glaube ich sage erstmal worum es mir überhaupt geht.

Ich habe folgende Tabelle in der Datenbank
http://weber-computerhilfe.de/bilder/sonstige/mysq...

Jetzt möchte ich die alle Einträge in einer Tabelle ausgeben, das Problem aber ist, dass ich ein HTML::Template benutze und die Ausgabe schon INCLUDE, wenn ich das dann so schreiben würde:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
print "Content-Type: text/html\n\n";
print $header->output;
while($ref = $sth->fetchrow_hashref()) {
$subtemplate->param(ZENSUR => $ref->{'word'});
$subtemplate->param(ERSATZ => $ref->{'replacement'});
};
$subtemplate->param(ANZEIGE => 1);
$subtemplate->param(FORMULAR => 0);
$content = $subtemplate->output();
$template->param(CONTENT => $content);
print $template->output;
print $footer->output;
exit;


wird mir nur der letzte Eintrag angezeigt. Wenn ich jetzt das ganze Template Zeug in die While-Schleife setze, dann wird mir das Template X mal (soviel Einträge wie in der Datenbank) ausgegeben. Und das will ich nicht.

Siehst du da eine Möglichkeit???

Danke schonmal für die Hilfe

Tom

P.S. Deine zwei ersten Codes haben nur leere Felder gebracht.\n\n

<!--EDIT|Tom|1085312734-->
Computerprobleme??? -> http://www.weber-computerhilfe.de

Fordere keine Anerkennung!
Zeige was und man wird Dich kennen
steffenw
 2004-05-23 21:23
#32170 #32170
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
Also die ersten beiden codes haben sicher nichts ausgegeben, weil Du nicht beachtet hast, daß ich die angeforederten Namen in Großbuchstaben gewandelt habe ( 'NAME_uc' ) oder weil Du die Namen der Felder nicht aktualisiert hast. Ich hatte sie pauschal FELD1 bis FELD3 genannt.

aus:
http://search.cpan.org/~samtregar/HTML-Template-2.6/Template.pm

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
print "Content-Type: text/html\n\n";
print $header->output;
my @loop_data = ();
while($ref = $sth->fetchrow_hashref()) {
 push
   @loop_data,
   { ZENSUR => $ref->{word},
     ERSATZ => $ref->{replacement},
     ANZEIGE => 1,
     FORMULAR => 0,
   },
 ;
}
$subtemplate->param(THIS_LOOP => \@loop_data);
$content = $subtemplate->output();
$template->param(CONTENT => $content);
print $template->output;
print $footer->output;
exit;

oder
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
print "Content-Type: text/html\n\n";
print $header->output;
while($ref = $sth->fetchrow_hashref()) {
 $subtemplate->param(
   [ THIS_LOOP =>
     { ZENSUR => $ref->{word},
       ERSATZ => $ref->{replacement},
       ANZEIGE => 1,
       FORMULAR => 0,
     },
   ],
 );
}
$content = $subtemplate->output();
$template->param(CONTENT => $content);
print $template->output;
print $footer->output;
exit;


Benutze
Code: (dl )
1
2
use Data::Dumper;
print Dumper \@loop_data;

um Dir anzuschauen, wie die Datenstruktur der angeforderten Daten aussieht. Probieren allein nutzt nichts.\n\n

<!--EDIT|steffenw|1085333970-->
$SIG{USER} = sub {love 'Perl' or die};
renee
 2004-05-24 00:10
#32171 #32171
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Über HTML::Template findest Du hier noch was:

http://perl.renee-baecker.de/HTML_Template.pdf und
http://perl.renee-baecker.de/HTML_TemplateII.pdf
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/
Tom
 2004-05-24 20:03
#32172 #32172
User since
2003-09-20
470 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ok, danke euch schon mal, werde mir das mal zu Auge führen.

Tom
Computerprobleme??? -> http://www.weber-computerhilfe.de

Fordere keine Anerkennung!
Zeige was und man wird Dich kennen
Tom
 2004-05-24 21:44
#32173 #32173
User since
2003-09-20
470 Artikel
BenutzerIn
[Homepage] [default_avatar]
Was würde ich bloß ohne euch machen ??? :D

Danke

Tom
Computerprobleme??? -> http://www.weber-computerhilfe.de

Fordere keine Anerkennung!
Zeige was und man wird Dich kennen
<< >> 9 Einträge, 1 Seite



View all threads created 2004-05-22 18:04.