login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Een enkele row per functie (Opgelost)

Offline Grayen - 17/05/2007 20:01 (laatste wijziging 17/05/2007 20:02)
Avatar van GrayenPHP ver gevorderde Ik heb nu de volgende code:

http://www.pastebin.be/1811

De opbouw van mijn MySQL tabellen is nu zo dat je per gebruikersgroep functies kan geven met een bepaalde prioriteit. Maar een gebruiker kan bij meerdere gebruikersgroepen horen. Bij het script wat ik nu heb krijg ik mooi een lijst met daarin alle functies die een gebruiker tot zijn beschikking heeft. Als een gebruiker bij een gebruikersgroep hoort die allebei dezelfde functie hebben, wil ik dat de functie met de hoogste prioriteit wordt genomen.

Nu zou ik de volgende array terugkrijgen met mijn huidige code en waardes die in de tabel staan:

  1. (
  2. [ADMIN_VIEW] => Array
  3. (
  4. [9] => 1
  5. [7] => 1
  6. )
  7.  
  8. )
Is het mogelijk om door mijn huidige query zo te wijzigen dat hij...
  1. (
  2. [ADMIN_VIEW] => Array
  3. (
  4. [9] => 1
  5. )
  6.  
  7. )

... zal returnen?

4 antwoorden

Gesponsorde links
Offline Rik - 17/05/2007 20:06
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Als je er "ORDER BY prioriteit LIMIT 1,1" achter zet?
Offline Grayen - 17/05/2007 20:15
Avatar van Grayen PHP ver gevorderde Dat zou werken als ik maar een functie had, maar ik heb er meer. Als test had ik een functie toegevoegd en dat krijg je het volgende met jouw code:

Zonder LIMIT 0, 1
  1. (
  2. [ADMIN_NEW] => Array
  3. (
  4. [1] => 1
  5. )
  6.  
  7. [ADMIN_VIEW] => Array
  8. (
  9. [9] => 1
  10. [7] => 1
  11. )
  12.  
  13. )


Met LIMIT 0, 1

  1. (
  2. [ADMIN_NEW] => Array
  3. (
  4. [1] => 1
  5. )
  6.  
  7. )
Offline Rik - 17/05/2007 20:22
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
En als je van dit:
  1. $this->aData['rights'][$aRight['name']][$aRight['priority']] = $aRight['type'] == 1 ? true : false;

Dit maakt?
  1. $this->aData['rights'][$aRight['name']] = array([$aRight['priority'], ($aRight['type'] == 1 ? true : false));
Offline Grayen - 17/05/2007 20:40
Avatar van Grayen PHP ver gevorderde Hmm ik zie het nut er niet van in om het in array te plaatsen. Ik heb al een simpele oplossing gevonden, namelijk heel simpel gewoon krsort($this->aData['rights']['functie_naam']); gebruiken om ervoor te zorgen dat hetgeen met de hoogste prioriteit bovenaan komt te staan en dan current($this->aData['rights']['functie_naam']) gebruiken om de waarde van de functie te krijgen. Bedankt voor de reacties.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.206s