04. januar 2002 - 04:44Der er
17 kommentarer og 2 løsninger
Optimer venligst, PHP+SQL
Er igang med *endnu* et system som E., bare i PHP (personlig udfordring) og for at vise en brugers placering laver jeg et SELECT på alle brugere der har færre eller samme antal point som brugeren selv.
For at undgå at 2+ brugere har samme placering sorterer jeg på både antal point (DESC) og id (ASC) (id vil senere blive udskiftet med et andet felt), trækker alle user id\'s ud og smider dem i et array og bruger array_search() til at give mig brugerens placering i arrayet (+1).
Men jeg synes det lugter lidt af slamkode og er *næsten* sikker på at det hele kan laves i ET SQL med ét udtræk med mysql_result($rs, 0, 0) for at få brugerens placering - I just don\'t know how :-(
Her er det nuværende stykke kode: ------------------------------ $rs = mysql_query(\"SELECT id FROM users WHERE points >= $user_points ORDER BY points DESC, id ASC\") or die(mysql_error()); while ($row = mysql_fetch_row($rs)) $userids[] = $row[0]; $user_rank = array_search($user_id, $userids) + 1; ------------------------------
$user_points indeholder se\'følig brugerens antal point.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Det var ikke det ;o) Mit spørgsmål er nok lidt kryptisk .. dunno ..
okay .. forestil dig jeg har 5 brugere i en tabel:
id navn point 1 admin 250 2 invisibleman 300 3 en_anden 300 4 en_tredie 300 5 quadro 302
Jeg vil gerne finde ud af hvilken placering f.eks. \"en_anden\" har. Jeg ved at brugeren har 300 point, og kan derfor udelukke alle der har under det antal.
Med det kan jeg her få af vide at der er 4 brugere der matcher det. Nu sorterer jeg så på point, faldende og dernæst på ID (for at der skal være noget der laver orden i det), stigende.
Jo, jo .. jeg har ID\'et på brugeren jeg vil finde placering på .. Jeg synes jeg har forklaret det rimeligt godt nu .. kan ikke skære det mere ud i pap uden at bruge flere timer på det :o(
Det er lissom også der mit problem ligger, der gør at jeg må bruge den metode jeg pt. gør !
Men nej, AND id < $user_id SKAL ikke være opfyldt ... for en bruger med et højere ID kan sagtens ligge placeret før brugeren jeg vil have placeringen på ..
Jeg stoppede midlertidigt med at arbejde på det projekt hvor jeg skulle bruge dette, så derfor får i begge point.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.