Beitrag von hempelr (1976 Beiträge) am Donnerstag, 29.August.2002, 12:44.
@Perler (Sander) - In Fkt. v. db.fields auch regex möglich?
Hallo,
geht es, Inhalte bestimmter Felder vom Typ Checkbox, deren Name bspw. alle mit a_ beginnen, in ner Schleife in eine Variable(oder noch besser gleich in eine Liste) einzulesen und mit Komma (oder nem anderen Zeichen) zu verketten, so daß die dann wieder mittels foreach unterschiedlich weiterbearbeitet werden können?
Sinn: wenn weitere Checkboxfelder dazukommen, muß man das Script nicht mehr ändern, sondern die Liste, die die Inhalte der Felder enthält bekommt automatisch die Einträge dazu. Brauche das ganze für ne komplexe Nutzerverwaltung - habs noch nicht hingekriegt, bisher halt nur "händisch" mit festen Einträgen für die Feldmanen in der Art:
@l_rechte = ($a_db1, $a_db2, $a_db3)
wobei a_db1 jeweils eines der Checkboxfelder aus der bp-Datenbank ist.
Die Logik hatte ich mir so gedacht:
für jeden Feldname der mit a_ beginnt
@liste = push(Feldinhalt)
Danke für Hilfe
Ruben
Antworten
Beitrag von H.Fehde (724 Beiträge) am Donnerstag, 29.August.2002, 18:05. WWW: www.bei123.de
Re: @Perler (Sander) - In Fkt. v. db.fields auch regex möglich?
..versuch's mal so:
foreach (@{$$_db{_field}})
{
push(@liste,"\$$_,") if(substr($_,0,2) eq "a_");
}
out @liste;
Gruß Harald
Antworten
Beitrag von hempelr (1976 Beiträge) am Donnerstag, 29.August.2002, 21:23.
Leider kein Ergebnis - war @Perler - In Fkt. v. db.fields auch ...
Danke erst mal für den Denkanstoß, aber ich kriegs nicht hin.
Irgendwie werden die Referenzen zu den Feldnamen nicht aufgelöst, die Liste @liste ist immer leer, initialisiert wird sie.
Hier mal mein Debug-Code, den ich getestet habe:
<include src=i_global>
<perl>
get "Id=*", "datenbank";
foreach (@{$$_datenbank{_field}})
{
push(@liste,"$$_,"); # if(substr($_,0,2) eq "a_");
}
foreach (@liste)
{
$aus.= "Wert von \$_: $_<br>";
}
$zahl = $#liste;
out<<EOF;
${\&head() }
${\&body() }
$aus<br>
$zahl<br>
$Ort
${\&foot() }
EOF
</perl>
Leider kommt nix in die Liste, obwohl ich die regex schon ausgeschaltet habe.
Da ist noch irgend ein Haken im Konstrukt für die Liste der Felder.....
Gruß
Ruben
Antworten
Beitrag von H.Fehde (724 Beiträge) am Donnerstag, 29.August.2002, 23:44. WWW: www.bei123.de
Re: Leider kein Ergebnis - war @Perler - In Fkt. v. db.fields auch ...
ne ne,..das Konstrukt "(@{$$_db{_field}})" erkennt doch die Datenbank schon, egal welche mit get angesprochen wurde!!.
<perl>
get "Id=*", "datenbank";
foreach (@{$$_db{_field}})
{
push(@liste,"\$$_") if(substr($_,0,2) eq "Id");
}
....
</perl>
Ich hab mal im push das Komma weggemacht, damit im Array die Daten nicht noch ein Komma haben. ;-)
Gruß Harald
Antworten
Beitrag von H.Fehde (724 Beiträge) am Donnerstag, 29.August.2002, 23:51.
Re: Leider kein Ergebnis - war @Perler - In Fkt. v. db.fields auch ...
Antworten
Beitrag von Sander (8133 Beiträge) am Donnerstag, 29.August.2002, 23:36.
Re: @Perler (Sander) - In Fkt. v. db.fields auch regex möglich?
Antworten
Beitrag von Sander (8133 Beiträge) am Donnerstag, 29.August.2002, 23:37.
Re: @Perler (Sander) - In Fkt. v. db.fields auch regex möglich?
Antworten
Beitrag von hempelr (1976 Beiträge) am Freitag, 30.August.2002, 08:15.
Re: @Perler (Sander) - In Fkt. v. db.fields auch regex möglich?
Jepp - es funzt, danke. Jetzt wo es hier steht, schlag ich mir an die Stirn - logo. Es muß ja erst mal die DB mit den Felddefinitionen geholt werden, eh man was draus nehmen kann.
Danke für die Hilfe, nu komm ich weiter....
Ruben
PS: Habt Ihr meine Mail bekommen, Sander? Wäre wichtig.
Antworten
Beitrag von Sander (8133 Beiträge) am Freitag, 30.August.2002, 09:07.
Re: @Perler (Sander) - In Fkt. v. db.fields auch regex möglich?
mail: ja - bekommst heute noch antwort... :-)
Sander
Antworten
Beitrag von H.Fehde (724 Beiträge) am Freitag, 30.August.2002, 00:10.
Re: @Perler (Sander) - In Fkt. v. db.fields auch regex möglich?
get "Id=*", "datenbank";
foreach (@{$$_db{_field}})
{
push(@liste,"\$$_") if(substr($_,0,2) eq "a_");
}
....
ist doch das Selbe ;-)
Antworten