08. september 2008 - 17:05Der er
8 kommentarer og 1 løsning
Placering i mysql udtræk
Hejsa.
Jeg har en "highscore" liste som jeg finder ved et mysql udtræk, og så "order by level, penge, køretøj"
Så er der blot en $i++ der viser placeringen på highscore listen.
Jeg kunne godt tænke mig at finde ud af hvad een bestemt bruger er på listen, så han kan se det på sin profil, men jeg kan ikke lige gennemskue hvordan jeg skulle gøre det.
Måske en mysql funktion der kan beregne hvad nummer han er i rækkefølgen?
Hvis du vil have numeret fra SQL må du have to "views" v1: Som din forespørgsel, dog uden limit. v2: Vælg alle fra v1 der er >= brugerens Til sidst tæller du antallet i v2.
A la: SELECT COUNT(*) AS Placering FROM ( SELECT ... FROM ( SELECT ... ... ) AS v1 WHERE ... ) AS v2
Tip: Der er ingen grund til at se resten af listen igennem når du har fundet brugeren. $i = 0; $user_pos = -1; while(($row = mysql_fetch_array($q)) && ($user_pos == -1)) { if($row['userid'] == $userid) { $user_pos = $i; } $i++; } Og så bliver $user_pos iøvrigt en for lille :-)
Men hey.. det virker fantastico, jeg forsøgte lidt med en bruger som er på en 10.000 plads, og det er ikke sløvere af den grund.. Det var mere det jeg frygtede :D
Formålet med "&& ($user_pos == -1)" er at stoppe når du har fundet brugeren og ikke se resten igennnem. Håber alt er vel nu :-)
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.