Ergebnis 1 bis 9 von 9

Thema: Rankingsystem Problem

  1. #1
    Großmeister(in) Avatar von MyXoToD
    Registriert seit
    07.11.2007
    Ort
    Mainz
    Alter
    24
    Beiträge
    507
    Danke
    0
    Bekam 1 mal "Danke" in 1 Posting

    Standard Rankingsystem Problem

    Ich habe eine Rankingliste bei einem Browsergame von mir.
    Dort werden alle User die nicht gesperrt sind ausgelesen und nach Ihrem Geld absteigend sortiert.
    Jetzt möchte ich es so machen, dass wenn man auf einer Profilseite von einem User ist, oben sein Rank angezeigt wird.
    Nur weiß ich nicht wie ich das machen soll ohne das ich das Ranking in eine Extra DB-Tabelle speichere und per Cronjob alle paar minuten/stunden zu aktualisieren. Weil auf der Userseite soll nur vom aktuellen User das Ranking angezigt werden (zB: User123 - Platz: 56).
    Hat jemand eine Idee wie ich das machen kann? Am besten so das es einfach direkt ausgelsen wird und ständig aktuell ist.

    Hoffe ihr habt eine/mehrere Idee/n
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    König(in) Avatar von crAzywuLf
    Registriert seit
    03.02.2009
    Beiträge
    1.175
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Rankingsystem Problem

    Du könntest die Anzahl derer auslesen die einen größeren Geldbetrag haben:
    Code:
    SELECT COUNT(*) FROM user WHERE geldbetrag > '". $usermoney . "' AND gesperrt = 0;
    Ich bin nicht sicher ob man das ganze noch + 1 rechnen muss, einfach mal testen...
    Geändert von crAzywuLf (04.12.2009 um 11:22 Uhr)
    Gruß crAzywuLf

  3. #3
    Großmeister(in)
    Themenstarter
    Avatar von MyXoToD
    Registriert seit
    07.11.2007
    Ort
    Mainz
    Alter
    24
    Beiträge
    507
    Danke
    0
    Bekam 1 mal "Danke" in 1 Posting

    Standard AW: Rankingsystem Problem

    Ja ich musste noch plus 1 rechnen, weil er sonst bei Platz 0 angefangen hätte.
    Ein Problem gibt es allerdings noch, wenn ich paar Leute hab, die den selben Betrag an Geld haben, dann werden sie beispielweiße beide mit Platz 5 angezeigt.
    In der rangliste kommen alle nach einander. Deswegen müsste es dann halt auch mit der rangliste an sich übereinstimmen.
    Hast du eine Idee wie ich das machen kann, damit jeder seinen rang hat wie es auch auf der rangliste steht.
    So siehts momentan aus auf den entsprechenden Profilseiten:
    Platz 1 - Spieler 1 - 500€
    Platz 2 - Spieler 2 - 400€
    Platz 3 - Spieler 3 - 300€
    Platz 4 - Spieler 4 - 200€
    Platz 5 - Spieler 5 - 100€
    Platz 5 - Spieler 6 - 100€
    Platz 5 - Spieler 7 - 100€
    Platz 5 - Spieler 8 - 100€

    Spieler 5-8 sollten eigentlich den rang 5,6,7 und 8 haben anstatt alle 5...

    :/ Hoffe das ist irgendwie zu beheben.
    Danke schonmal du hast mir schonmal geholfen

  4. #4
    König(in) Avatar von crAzywuLf
    Registriert seit
    03.02.2009
    Beiträge
    1.175
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Rankingsystem Problem

    Du könntest mal probieren die User nach Geldbetrag und User ID sortieren

    Code:
    SELECT COUNT(*) FROM user WHERE geldbetrag > '". $usermoney . "' AND id < '" . $userid . "' AND gesperrt = 0;
    Das gleiche müsstest dann auf der Übersichtsseite auch machen quasi
    Code:
    SELECT a,b,c FROM user ORDER BY geldbetrag DESC, id ASC LIMIT ...;
    EDIT:
    Mal davon abgesehen, wieso willst du keinen Cronjob benutzen? Große Browsergames benutzen fast alle Cronjobs, weil es einfach nicht so serverlastig ist. Es gibt ja auch kostenlose Cronjobs, die könntest du z.B. auch benutzen, falls dein Webservice dir keine Cronjobs stellt.
    Geändert von crAzywuLf (04.12.2009 um 12:33 Uhr)
    Gruß crAzywuLf

  5. #5
    Großmeister(in)
    Themenstarter
    Avatar von MyXoToD
    Registriert seit
    07.11.2007
    Ort
    Mainz
    Alter
    24
    Beiträge
    507
    Danke
    0
    Bekam 1 mal "Danke" in 1 Posting

    Standard AW: Rankingsystem Problem

    Mein Server stellt sie mir nur gegen Bares^^
    Ja ich weiß das es die kostenlos gibt. Aber eine Serverlast ist das auch...
    Weil du musst bedenken. Die Rangliste sollte oft aktualisiert werden weil spieler sehen wollen wo sie stehen und das möglichst schnell.
    Und dann bleibt mir nur die möglichkeit die cronjobs in 5 Minuten abschnitten zu schalten. Und das heißt alle 5 Minuten ein Update der datenbank
    Ich werd das was du gepostet hast mal probieren.

    //EDIT:
    Klappt leider nicht so wie es sollte :/
    Geändert von MyXoToD (04.12.2009 um 12:58 Uhr)

  6. #6
    König(in) Avatar von crAzywuLf
    Registriert seit
    03.02.2009
    Beiträge
    1.175
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Rankingsystem Problem

    Zitat Zitat von Santos Beitrag anzeigen
    //EDIT:
    Klappt leider nicht so wie es sollte :/
    Mein Lösungsvorschlag war noch nicht so ganz durchdacht probiers mal so, falls du es jetzt überhaupt noch brauchst^^:
    Code:
    SELECT COUNT(*) FROM user WHERE bargeld > '" . $usermoney ."' OR (bargeld = '" . $usermoney ."' AND id < '" . $userid ."') AND gesperrt = 0;
    Mit meiner Testtabelle funktionierte es und der 2 Query klappt auch

    Ja ich weiß das es die kostenlos gibt. Aber eine Serverlast ist das auch...
    Nunja, ob jetzt alle 5 Minuten ein Script mal alles durchrechnet oder ob 30 Leute in der Sekunde eine Seite aufrufen die ein relativ teures SQL Statement abschießen, macht schon ein Unterschied... Muss man halt immer abwägen...
    Geändert von crAzywuLf (04.12.2009 um 13:43 Uhr)
    Gruß crAzywuLf

  7. #7
    Großmeister(in)
    Themenstarter
    Avatar von MyXoToD
    Registriert seit
    07.11.2007
    Ort
    Mainz
    Alter
    24
    Beiträge
    507
    Danke
    0
    Bekam 1 mal "Danke" in 1 Posting

    Standard AW: Rankingsystem Problem

    Hm jetzt steht beim Profil des ersten Platz 1
    beim zweiten-vierten steht Platz 5
    beim fünften Platz 6
    und beim rest Platz 7
    Oo
    Insgesamt 12 Spieler (Spiel ist noch nciht online deswegen alles testuser^^)

  8. #8
    Großmeister(in)
    Themenstarter
    Avatar von MyXoToD
    Registriert seit
    07.11.2007
    Ort
    Mainz
    Alter
    24
    Beiträge
    507
    Danke
    0
    Bekam 1 mal "Danke" in 1 Posting

    Standard AW: Rankingsystem Problem

    Ich denke ich belasse es so, jeder der jetzt gleich ist, der hat auch den sleben rank, ist auch eigentlich gut so. Also alle die den selben geldbetrag haben sind auf dem selben platz.
    Danke für die Hilfe

  9. #9
    König(in) Avatar von Grevas
    Registriert seit
    20.04.2009
    Ort
    In meiner Wohnung.
    Alter
    30
    Beiträge
    1.039
    Danke
    0
    Bekam 5 mal "Danke" in 5 Postings

    Standard AW: Rankingsystem Problem

    Du könntest schönheitshalber einmal nach denen Suchen die mehr haben und dann nochmal extra schauen ob es doppelte Einträge gibt - wenn ja kannst du diese zählen und z.B. Rank 5-8 schreiben lassen.

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •