Mailinglisten-Archive |
Michael Borchers wrote:
> Ich habe ein Array an erforderlichen Benutzergruppen
> $groups = Array(1, 3, 4, 6) ...
>
> Eine Funktion checkGroup($user, $group) überprüft in der Datenbank, ob der
> aktuelle Benutzer $user einer der erforderlichen Gruppe $group zugewiesen
> wurde.
>
> Ein Benutzer kann mehreren Gruppen zugewiesen werden.
>
> Einfachste Lösung:
> Einmal jeden Eintrag aus $groups Array mit der checkGroup Funktion
> durchlaufen lassen -
>
> foreach($groups as $group)
> {
> $check = checkGroup($user, $group)
> }
>
> if($check >= 1) gibt dann true zurück, also ist der Benutzer in mind. einer
> der erforderlichen Gruppen eingetragen.
>
>
> Gibt es auch ne Mögl. die Schleife nur solange durchlaufen zu lassen, bis
> sie das erste Mal "true" zurückliefert?!
>
> So in der Art while($check != true) ... ?!
foreach($groups as $group)
{
if (($check = checkGroup($user, $group)) ===true) break;
}
Allerdings wäre es besser du schreibst dein checkGroup um, damit es bei
der DB-Afrage direkt mit ORs auf alle Gruppen in der DB aufmal prüft,
damit du mit nur einem Query an die DB auskommst.
>
Yannik
php::bar PHP Wiki - Listenarchive