Gå til innhold

Telle antall av en verdi i database


Anbefalte innlegg

Skal prøve å forklare så godt som mulig... :)

 

Har en tabell (leaders) med blant annet dette:

leaderID (pri)

leader_name

 

Og members:

memberID (pri, auto_inc)

member_name

leaderID (fremmednøkkel mot leaders.leaderID)

 

Når nye medlemmer registrerer seg vil jeg at de skal få tildelt en leaderID og at de skal fordeles jevnt mellom lederne.

 

F.eks:

leader_name/leaderID

leder1/123

leder2/987

 

memberID/member_name/leaderID

1/member1/123

2/member2/987

 

Så når member3 melder seg på skal han få 123 eller 987 som leder. Altså balanseres likt, men når flere har like mange tar den "random" en av dem.

 

Hvordan kan jeg få til dette?

Vet jeg kan putte på et felt num_members i leaders, men hvis jeg da sletter noe medlemmer må også denne verdien korrigeres og vil ha den mest mulig "dynamisk".

 

For å finne ut hvor mange som skal være på hver når en ny melder seg inn kan jeg telle antall ledere og medlemmer og ta en "ceil(antall_member/antall_leaders)", men hvordan kan jeg da få "hentet ut" de som har for få medlemmer?

 

Håper noen skjønte dette! :)

 

Edit:

Skrivefeil

Endret av ZoRaC
Lenke til kommentar
Videoannonse
Annonse

Du kan lage en whileløkke (tror nemlig dette må gjøres i php og ikke kan gjøres direkte i sql) basert på spørringen group by leaderID, slik at du får ut alle unike leder-id'er. I whileløkka spør du etter antall som har vedkommende id som leder: count(*) as count WHERE leaderID = '".$leaderID."'

 

Hjelper det deg noe på vei?

Lenke til kommentar

Takk for tipset, men hvis jeg da har mange ledere vil jo dette gi mange spørringer mot databasen. Vil ikke dette belaste mysql-serveren en god del?

 

Kunne trengt en måte å hente alle leaderID i en array og fått til å telle verdiene med PHP... noen mulighet for det?

Lenke til kommentar

Å få en tilfeldig leaderID tørr jeg ikke å tenke på, men burde i hvertfall være mulig å få den med færrest antall medlemmer ved hjelp av en subselect....

 

 

Edit: hmmmm, du trenger en random verdi, du.... bør være mulig det også, men....

Endret av laaknor
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...