RipeX Skrevet 23. oktober 2008 Rapporter Del Skrevet 23. oktober 2008 (endret) Hei! Jeg holder på en brukerside (til spillsiden min som jeg jobber med) hvor spilleren kan se hvordan plass vedkommende ligger på totalt i de forskjellige spillene han har spilt. Her er spørringen som jeg har så langt: SELECT h.score, g.title, h.mode, g.url, u.username, (SELECT count(id) + 1 FROM highscores WHERE mode = h.mode AND score < h.score) AS place FROM highscores h INNER JOIN games g ON h.gid = g.id INNER JOIN users u ON g.uid = u.id WHERE h.uid = '1' ORDER BY place ASC Det som skjer her er at den finner ut om det har noen andre bedre tid enn det brukeren har. Og problemet mitt er at denne spørringen bare fungere på spill hvor det er om å gjøre å få lavest mulig score, men ikke når det er om å gjøre å få høyest score. Jeg har et felt i games-tabellen (den heter api_order) som det står hvilken "vei" underspørring skal velge i (asc eller desc), men vet ikke om det er mulig å hente ut denne informasjonen for å så velge etter feltets innhold? Okay, det ble veldig dårlig forklart... Men det er på slutten av linje 2 i koden som jeg sikter til (score < h.score). Så det jeg lurer på er om det er mulig å gjøre noe sånn at for hver rad så ser den om det står ASC eller DESC i games.api_order og dermed finner ut om det skal være < eller > i mellom score og h.score? Endret 25. oktober 2008 av RipeX Lenke til kommentar
phfjeld Skrevet 24. oktober 2008 Rapporter Del Skrevet 24. oktober 2008 Kan du ikke lage en skala, som gir hvert enkelt spills poengsum en verdi på en fastsatt skala. loop trough games if currentGame.name = "CoD" currentGame.finalScore = scoreAlgorithm(currentGame.score, ) else if currentGame.name = "RACER" scoreAlgorithm(currentGame.score) Algoritmen må du selv utarbeide. Lenke til kommentar
RipeX Skrevet 24. oktober 2008 Forfatter Rapporter Del Skrevet 24. oktober 2008 (endret) Kan du ikke lage en skala, som gir hvert enkelt spills poengsum en verdi på en fastsatt skala. loop trough games if currentGame.name = "CoD" currentGame.finalScore = scoreAlgorithm(currentGame.score, ) else if currentGame.name = "RACER" scoreAlgorithm(currentGame.score) Algoritmen må du selv utarbeide. Takk for tipset! Takket være ditt svar så kom jeg på en løsning som funket! Den ser ikke så bra ut, men den funker! SELECT h.score, g.title, h.mode, g.url, u.username, IF(g.api_order = 'asc', (SELECT count(id) + 1 FROM highscores WHERE mode = h.mode AND score < h.score), (SELECT count(id) + 1 FROM highscores WHERE mode = h.mode AND score > h.score)) AS place FROM highscores h INNER JOIN games g ON h.gid = g.id INNER JOIN users u ON g.uid = u.id WHERE h.uid = '1' ORDER BY place ASC Endret 24. oktober 2008 av RipeX 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å