in Array addieren und multiplizieren

DJauie

Mitglied
Hi!
Ich habe mir eine Rechteverwaltung ausgedacht und stehe vor folgendem Problem:

In meiner Datenbank hab ich für verschiedene Gruppen eine extra Spalte und hinter jedem User steht dann eben eine 0 oder eine 1.

So lese ich das ganze aus:
PHP:
$sql="SELECT Recht1, Recht2, Recht3, Recht4, Recht5 FROM users WHERE UserName='$username'"; 
    $result= mysql_query($sql) or die(mysql_error()); 
    if ( mysql_num_rows($result)==1) 
    { 
        $rights=mysql_fetch_assoc($result);

Jetzt möchte ich allerdings eine Summe bilden. Vergleichbar mit dem Tutorial von hier (hab den link grad net) wo das mit den binären Zahlen erklärt ist. Demnach müsste ich ja Recht1 mit 1 multiplizieren und Recht2 mit 2, Recht3 mit 4 usw...damit ich für den Admin dann quasi eine Summe von 31 rausbekomme....

Aber wie mache ich das in dem Array?

ich habs schon so versucht:
PHP:
                        $rightssum[2] = $rights[2] * 2;
	   $rightssum[3] = $rights[3] * 4;
	   $rightssum[4] = $rights[4] * 8;
	   $rightssum[5] = $rights[5] * 16;
aber das geht nicht...

bin für jeden Tipp dankbar...scheinbar is das ja nur ein kleiner denkfehler...
 
Du könntest es folgendermaßen machen:
  SELECT
          (`Recht1`*1)+(`Recht2`*2)+(`Recht3`*4)+(`Recht4`*8)+(`Recht5`*16) AS `summe`
    FROM
          `users`
    WHERE
          `UserName` = '$username'
 
Aaaach, ich kann des ach net so machen wie oben, des muss so heissen:

PHP:
$rightssum['1'] = $rights['Standart'];
	   $rightssum['2'] = $rights['Recht1'] * 2;
	   $rightssum['3'] = $rights['Recht2'] * 4;
	   $rightssum['4'] = $rights['Recht3'] * 8;
	   $rightssum['5'] = $rights['Recht4'] * 16;

trotzdem danke Gumbo...deins is sicherlich eleganter ;)
 
Zurück