[quote=bamboocha,25.05.2005, 09:22]der Code (Schnippsel)
($dat->[1] ist ein Array und $k ein Array des Bandes @selected_speech)
[$ 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?!...
[...]
[$ 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
[$ while ( $dat = $sth_sd -> fetchrow_arrayref ) $]
heißen.