ZoRaC Skrevet 30. januar 2005 Del Skrevet 30. januar 2005 (endret) 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 30. januar 2005 av ZoRaC Lenke til kommentar
Gilbert Skrevet 31. januar 2005 Del Skrevet 31. januar 2005 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
ZoRaC Skrevet 31. januar 2005 Forfatter Del Skrevet 31. januar 2005 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
ZoRaC Skrevet 31. januar 2005 Forfatter Del Skrevet 31. januar 2005 Etter mye "prøv og feil" fikk jeg løst det. Kan ikke mye om array så det er nok ikke den "beste" måten. Kanskje noe ser noe jeg kunne gjort enklere? Koden ligger her: http://www.phpaste.com/2382 Lenke til kommentar
laaknor Skrevet 31. januar 2005 Del Skrevet 31. januar 2005 (endret) Å 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 31. januar 2005 av laaknor Lenke til kommentar
ZoRaC Skrevet 31. januar 2005 Forfatter Del Skrevet 31. januar 2005 Hva er subselect? Som du ser har jeg fått det til å virke, men hvis du ser på koden vil du nok se at jeg er ganske grønn på det med arrays... Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå