Hallo,
@kerki:
Das war wohl nichts:
while ( @namen = $sth->fetchrow_array ) {
print "Vorname: @namen[0]\n";
Wenn überhaupt, wohl eher so:
while ( @namen = $sth->fetchrow_array ) {
print "Vorname: $namen[0]\n";
In neueren Perl-Versionen ist sowohl als auch möglich (Ich denke ab 5.6, aber sicher bin ich mir nicht)
@Korbinian:
Ich denke Deine Email-Antwort wäre hier als Posting besser angebracht gewesen. Ich will auch hier darauf heingehen:
1.)Du meintest, in php hast Du immer 'select * from irgendwas' verwendet.
Das geht natürlich auch mit Perl, da das ja eigentlich mehr mit der Datenbank zu tun hat als mit der verwendeten Programmiersprache.
Warum es m.E. besser ist, 'select X,Y,Z from irgendwas' zu verwenden, hat unter anderem den Grund, daß sich beispielsweise die Datenstrukur irgendwie ändern kann, und Du dann vielleicht die Felder nicht in der angenommenen Weise erhältst.
Außerdem wird beim betrachten des Codes klar, was da so daherkommt (Dein Beispiel mit $row[0] sagt mir absolut nicht, ob das z.B. ein Name oder eine ID ist, und Dir in 2 Monaten vielleciht auch nicht mehr )
2.) in PHP machts folgendes:
while ($row = mysql_fetch_array($query))
{ echo $row[spalte]; }
Dabei ist $row anscheinen ein Array mit den Werten des Datensatzes.
In Perl ersetzt Du das $ durch ein @ und das echo durch ein print.
while ( @row = $sth->fetchrow_array ) {
print @row[0];}
oder
while ( $row = $sth->fetchrow_hashref ) {
print $row->{feld1};}
oder
while ( ($feld1,$feld2,$feld3( = $sth->fetchrow_array ) {
print $feld1;}
(wobei ich nicht weiß ob echo und print gleich reagieren, da kenn ich PHP zu wenig, sprich gar nicht)
Es gibt in Perl viele Wege, die zum Ziel führen, vielleicht für den Einen oder Andern zu viele.
Grüße
Klaus