Beitrag von Jürgen (614 Beiträge) am Donnerstag, 7.November.2002, 22:12.
loop innerhalb einer Perlanweisung
Hi BP-Fraeks,
ich weis, daß innerhalb einer loop Anweisung kein Perl funktioniert - und wahrscheinlich umgekehrt auch nicht.
Wer kann mir helfen. Es wird mir immer nur ein Datensatz angezeigt.
Hier mal der verkürzte Perlcode:
<perl>
if($namerein ne "")
{
get "Benutzername==!$namerein", "kunden";
if($Passwort ne "" && $Passwort eq $pwrein)
{
out <<EOF;
<CENTER><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><TR VALIGN=TOP ALIGN=LEFT>... usw.
<TABLE WIDTH=323 BORDER=0 CELLSPACING=0 CELLPADDING=0 ALIGN=LEFT NOF=TE><TR><TD>
<loop Benutzername==$namerein Passwort==$pwrein Freigegeben==1>
<TABLE ID="Tabelle22" BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><TR><TD WIDTH=323 HEIGHT=15><P><FONT COLOR="#FFFFFF"><B>Notiz:</B></FONT></P></TD></TR><TR><TD WIDTH=323><H5><FONT COLOR="#FFFFFF">$Beschreibung</FONT></TD></TR><TR><TD><P><FONT COLOR="#FFFFFF">... usw.
</TABLE>
</loop>
</TD></TR></TABLE></TD></TR><TR> ...usw.
</TABLE></TD></TR></TABLE></TD></TR></TABLE></CENTER>
EOF
} else
{
out <<EOF;
...usw.
Hab's auch schon im loop mit code=perl probiert - nichts.
Was mach ich falsch, was muß wo, und wie in die Anweisung rein??
Bitte um eure hilfe. Danke.
Gruß
Jürgen
Antworten
Beitrag von H.Fehde (724 Beiträge) am Donnerstag, 7.November.2002, 22:49.
Re: loop innerhalb einer Perlanweisung
.."ich weis, daß innerhalb einer loop Anweisung kein Perl funktioniert " stimmt nicht - siehe:
http://baseportal.de/cgi-bin/baseportal.pl?htx=/hilfe/baseportal/db_help&help=58
Es funktioniert so doch nicht innerhalb <perl><loop>..</loop></perl>
..aber selbst mit einer while-Schleife würde wohl nur ein Datensatz rauskommen, wenn Du als Bedingung "Benutzername==$namerein Passwort==$pwrein " angibst.
Was willst Du erreichen ? - Harald
Antworten
Beitrag von Jürgen (614 Beiträge) am Donnerstag, 7.November.2002, 23:01.
Re: loop innerhalb einer Perlanweisung
Hi Harald,
ist so, man kann im Datensatz Benutzer und Passwort festlegen. Der Datensatz beinhaltet noch 3 Felder für Links, so wenn jetzt 3 Felder nicht ausrreichen würden, dann legst du einfach einen neuen Datensatz mit gleichen Benutzer und Passwort an um die Links zu erweitern. So wars eigentlich gedacht. Verstanden?
Es sollte halt nur gelistet werden wo Benutzername, Passwort und das Feld Freigegeben(Checkbox) mit 1 in der Db vorhanden ist.
Den Eintrag von dir hab ich auch schon durchgekaut, aber kein Erfolg. Fällt dir nochwas ein. Danke.
gruß
Jürgen
Antworten
Beitrag von H.Fehde (724 Beiträge) am Freitag, 8.November.2002, 00:06.
Re: loop innerhalb einer Perlanweisung
#---
get "Benutzername==!$namerein&Passwort==!$pwrein", "kunden";
out <<EOF;
<CENTER><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><TR VALIGN=TOP ALIGN=LEFT>... usw.
<TABLE WIDTH=323 BORDER=0 CELLSPACING=0 CELLPADDING=0 ALIGN=LEFT NOF=TE><TR><TD>
EOF
while (net_next("kunden"))
{
<TABLE ID="Tabelle22" BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><TR><TD WIDTH=323 HEIGHT=15><P><FONT COLOR="#FFFFFF"><B>Notiz:</B></FONT></P></TD></TR><TR><TD WIDTH=323><H5><FONT COLOR="#FFFFFF">$Beschreibung</FONT></TD></TR><TR><TD><P><FONT COLOR="#FFFFFF">... usw.
</TABLE>
EOF
}
out <<EOF;
</TD></TR></TABLE></TD></TR><TR> ...usw.
</TABLE></TD></TR></TABLE></TD></TR></TABLE></CENTER>
EOF
} else #...
mal versuchen - weiß nicht genau, ob Du das so meinst
Antworten
Beitrag von Jürgen (614 Beiträge) am Freitag, 8.November.2002, 00:26.
Re: loop innerhalb einer Perlanweisung
Hi Harald,
danke für den Tipp, aber ich hab selbst auch ein bisschen rum gebastel - sieht so aus und funzt.
bla bla bla><TABLE WIDTH=303 BORDER=0 CELLSPACING=0 CELLPADDING=0 ALIGN=LEFT NOF=TE><TR><TD>
EOF
get "Benutzername==$namerein Passwort==$pwrein Freigegeben==1", "kunden";
while(get_next("kunden"))
{
out <<EOF;
<TABLE ID="Tabelle22" BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><TR><TD WIDTH=303 HEIGHT=15><P><FONT COLOR="#FFFFFF"><B>Notiz:</B></FONT></P></TD></TR><TR><TD WIDTH=303><H5><FONT COLOR="#FFFFFF">$Beschreibung</FONT></TD></TR><TR><TD><P><FONT COLOR="#FFFFFF"> </FONT></P></TD></TR><TR><TD WIDTH=303 HEIGHT=15><P><FONT COLOR="#FFFFFF"><B>Download - Files:</B></FONT></P></TD></TR><TR><TD WIDTH=303><P><FONT COLOR="#FFFFFF"></FONT><TABLE WIDTH=303 BORDER=0 CELLSPACING=0 CELLPADDING=0 ALIGN=LEFT NOF=TE><TR><TD><P ALIGN=LEFT><FONT COLOR="#FFFFFF"><A HREF="$Root$File_1">$File_1</a><BR><A HREF="$Root$File_2">$File_2</a><BR><A HREF="$Root$File_3">$File_3</a></FONT></P></TD></TR></TABLE></TD></TR><TR><TD><P><FONT COLOR="#FFFFFF"> </FONT></P></TD></TR><TR><TD><P><FONT COLOR="#FFFFFF"> </FONT></P></TD></TR></TABLE>
EOF
}
out <<EOF;
bla bla bla
Nur was mir aufgefallen ist, wenn ich einen gleichen Benutzernamen verwende z.B. c (2 Datensätze vorhanden mit c als Benutzernamen) und dazu ein anderes Passwort vergebe, wird mir die Meldung gebracht, daß die Anmeldung fehlgeschlagen ist??
Hast du eine Ahnung warum?
Gruß
Jürgen
Antworten
Beitrag von H.Fehde (724 Beiträge) am Freitag, 8.November.2002, 00:43.
Re: loop innerhalb einer Perlanweisung
Antworten
Beitrag von Matthias Lorenz (4 Beiträge) am Mittwoch, 27.November.2002, 00:14.
Re: loop innerhalb einer Perlanweisung
Du kannst das mit "get" machen.
Z.B:
get "nutzer_name==$namerein" ,"nmd";
while(get_next("nmd"))
{
out "<tr>";
out "<td bgcolor=e0e0e0>Ändern</td><td bgcolor=e0e0e0>";
out datum("$Datum", "Tag.Monat.Jahr");
out "</td><td bgcolor=e0e0e0>$Ort</td>";
out "<td bgcolor=e0e0e0>$Uhrzeit</td>";
out "</tr>";
}
Ist zwar kein loop, wirkt sich aber genauso aus...
Antworten