Thread foreach - HILFE:Wo liegt denn der Hund begraben?! (6 answers)
Opened by bamboocha at 2005-05-25 11:22

Relais
 2005-05-25 19:19
#4975 #4975
User since
2003-08-06
2246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=bamboocha,25.05.2005, 09:22]der Code (Schnippsel)
($dat->[1] ist ein Array und $k ein Array des Bandes @selected_speech)

Code: (dl )
1
2
3
4
5
6
7
8
9
[$ foreach $k @selected_speech $]


[$ if $dat->[1] eq $k $]
checked
[$ endif $]


[$ endforeach $]


das Skript stoppt sofort, sobald das letzte $k aufgerufen worden ist (also führt den Code in der If-Schleif nicht mehr aus obwohl dieser True ist!!) --> Skript stoppt in der IF-Abfrage-Zeile?!...

[...]

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
[$ while $dat = $sth_sd -> fetchrow_arrayref $]

[$ foreach $k @selected_speech $]

[$ if $dat->[1] eq $k $]
checked
[$ endif $]


[$ endforeach $]

[$ endwhile $]
[/quote]
$dat->[1] ist entweder ein Skalar oder ein Syntax-Error.
Genauer ist es das zweite Element eines Arrays, auf welche die Referenz $dat verweist. Wenn das erste gewünscht wird, muß es $dat->[0] heißen.

$k ist kein Array sondern ein Skalar, und das ist auch besser so, denn zwei Arrays mit eq vergleichen bringt selten das gewünschte Resultat.

@selected_speech ist ein Array und kein(e) "Band". Was verstehst Du unter dem Begriff "Band"?

Es gibt keine If-Schleifen, If leitet eine einfache Bedingung ein.

Was verstehst Du unter "stoppen" des Skripts?

Woher willst Du wissen, ob die If-Bedingung wahr ist? Wie hast Du das getestet?

Laut Doku muß es
Code: (dl )
[$ while ( $dat = $sth_sd -> fetchrow_arrayref ) $]
heißen.
Erst denken, dann posten --
27. Deutscher Perl- u. Raku -Workshop (Termin wird noch gesucht) 2025 in München.

Winter is Coming

View full thread foreach - HILFE:Wo liegt denn der Hund begraben?!