Gemäß Anzahl von 2. & 3. Plätzen Rangliste der punktgleichen Erstplatzierten ausgeben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gemäß Anzahl von 2. & 3. Plätzen Rangliste der punktgleichen Erstplatzierten ausgeben

    Hi.

    Hab ob begrenzter Kenntnisse etwas umständlich eine Top 3-Rangliste programmiert, die die besten 3 Spieler, also diejenigen mit den meisten ersten Plätzen (in verschiedenen Spielen), ausgibt:

    Rangliste

    Der MySQL-Part:
    PHP-Code:
    $sql " SELECT DISTINCT u.user_id, u.username, a.first_places FROM " USERS_TABLE " as u, " iNA_USER_DATA " as a" .
           
    " WHERE u.user_id = a.user_id" .
           
    " AND a.first_places > 0" .
           
    " ORDER by a.first_places DESC, last_won_date, u.username LIMIT 3"
    Das Problem ist nur, dass Spieler mit der gleichen Anzahl von Erstplatzierungen willkürlich sortiert im Ranking auftauchen - ungeachtet ihrer Zweit- und Drittplatzierungen.

    Würd es am liebsten so haben, dass, bevor die Liste ausgegeben wird, erst die Zweitplatzierungen gecheckt werden und dann - sofern die auch gleich sein sollten - die Drittplatzierungen.

    Oder, sollte es einfacher sein, würd mir auch eine Sortierung gemäß der Summe der zweiten und dritten Plätze reichen, i.e. "(a.second_places + a.third_places) AS total_trophies".

    Hab jetzt stundenlang überlegt und rum experimentiert; wär nett, wenn ihr mir etwas helfen könntet.

    Vielen Dank!
    Zuletzt geändert von baerenwurm; 02.02.2011, 20:42.

  • #2
    Hallo,

    man könnte auch Punkte vergeben: 100 für jeden belegten ersten Platz, 10 für jeden zweiten und einen für jeden dritten Platz. Dann nimmst du die Spieler mit den meisten Punkten.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Danke für die fixe Antwort!

      Und wie kann man das konkret im Code, möglichst innerhalb der MySQL-Abfrage, lösen? Von PHP hab ich nämlich noch viel weniger Ahnung...

      [e] z. Zt. hab ich's (halb unbefriedigend) so gelöst:

      PHP-Code:
      $sql " SELECT DISTINCT u.user_id, u.username, a.first_places, (a.second_places + a.third_places) AS total_trophies
      FROM " 
      USERS_TABLE " as u, " iNA_USER_DATA " as a" .
             
      " WHERE u.user_id = a.user_id" .
             
      " AND a.first_places > 0" .
             
      " ORDER BY a.first_places DESC,total_trophies DESC LIMIT 3"
      Zuletzt geändert von baerenwurm; 02.02.2011, 21:51.

      Kommentar


      • #4
        Naja, über sowas wie

        Code:
        a.first_places * 100 + a.second_places * 10 ...
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          Danke!

          Aber kann es sein, dass

          PHP-Code:
          ORDER BY a.first_places DESCa.second_places DESCa.third_places DESC LIMIT 3
          auch reicht?

          Kommentar


          • #6
            Öhm, ja, da könnte was dran sein
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar


            • #7
              Hätt' ich auch früher drauf kommen können...

              Kommentar


              • #8
                Hier fehlt ein "Like"-Button
                [FONT="Helvetica"]twitter.com/unset[/FONT]

                Shitstorm Podcast – Wöchentliches Auskotzen

                Kommentar

                Lädt...
                X