Verschiedene Bedingungen - Bestenliste

  • Grüß euch!

    Ich komme grade nicht weiter.

    Ein Plugin von einen Server erstellt mir automatisch eine Datenbank, die z.b. nach einigen Spielen so aussieht:
    [TABLE='class: grid, width: 500']

    [tr][td]

    owner

    [/td][td]

    wins

    [/td][td]

    loses

    [/td][td]

    knockouts

    [/td][td]

    games

    [/td][td]

    score

    [/td][/tr][tr][td]

    P1

    [/td][td]

    2

    [/td][td]

    0

    [/td][td]

    3

    [/td][td]

    2

    [/td][td]

    1004

    [/td][/tr][tr][td]

    P2

    [/td][td]

    0

    [/td][td]

    2

    [/td][td]

    1

    [/td][td]

    2

    [/td][td]

    999

    [/td][/tr][tr][td]

    P3

    [/td][td]

    0

    [/td][td]

    2

    [/td][td]

    0

    [/td][td]

    2

    [/td][td]

    999

    [/td][/tr][tr][td]

    P1

    [/td][td]

    2

    [/td][td]

    0

    [/td][td]

    3

    [/td][td]

    2

    [/td][td]

    1004

    [/td][/tr][tr][td]

    P2

    [/td][td]

    0

    [/td][td]

    2

    [/td][td]

    1

    [/td][td]

    2

    [/td][td]

    999

    [/td][/tr][tr][td]

    P3

    [/td][td]

    0

    [/td][td]

    2

    [/td][td]

    0

    [/td][td]

    2

    [/td][td]

    999

    [/td][/tr][tr][td]

    P1

    [/td][td]

    3

    [/td][td]

    0

    [/td][td]

    5

    [/td][td]

    3

    [/td][td]

    1009

    [/td][/tr][tr][td]

    P2

    [/td][td]

    0

    [/td][td]

    3

    [/td][td]

    1

    [/td][td]

    3

    [/td][td]

    997

    [/td][/tr]


    [/TABLE]


    Jetzt will ich auf meiner Webseite das letzte Spiel von jedem Spieler ausgeben.
    Dabei hätte ich folgendes versucht:


    Nur leider gibt das Script mir folgendes aus, warum weiß ich leider nicht ^^ (deswegen frage ich ja, wie man dass anstellt, das das richtige rauskommt):[TABLE='class: grid, width: 500']

    [tr][td]

    Spieler

    [/td][td]

    Punkte

    [/td][td]

    Spiele gespielt

    [/td][td]

    Gewonnen

    [/td][td]

    Verloren

    [/td][td]

    Gegner hinausgeworfen

    [/td][/tr][tr][td]

    P1

    [/td][td]

    1004

    [/td][td]

    2

    [/td][td]

    2

    [/td][td]

    0

    [/td][td]

    3

    [/td][/tr][tr][td]

    P2

    [/td][td]

    999

    [/td][td]

    2

    [/td][td]

    0

    [/td][td]

    2

    [/td][td]

    1

    [/td][/tr][tr][td]

    P3

    [/td][td]

    999

    [/td][td]

    2

    [/td][td]

    0

    [/td][td]

    2

    [/td][td]

    0

    [/td][/tr]


    [/TABLE]

    Es sollte aber lauten:
    [TABLE='class: grid, width: 500']

    [tr][td]

    Spieler

    [/td][td]

    Punkte

    [/td][td]

    Spiele gespielt

    [/td][td]

    Gewonnen

    [/td][td]

    Verloren

    [/td][td]

    Gegner hinausgeworfen

    [/td][/tr][tr][td]

    P1

    [/td][td]

    1009

    [/td][td]

    3

    [/td][td]

    3

    [/td][td]

    0

    [/td][td]

    5

    [/td][/tr][tr][td]

    P2

    [/td][td]

    997

    [/td][td]

    3

    [/td][td]

    0

    [/td][td]

    3

    [/td][td]

    1

    [/td][/tr][tr][td]

    93

    [/td][td]

    997

    [/td][td]

    2

    [/td][td]

    0

    [/td][td]

    2

    [/td][td]

    0

    [/td][/tr]


    [/TABLE]


    Hoffentlich kann mir jemand helfen :)

    mfg
    weini

  • MAX liefert dir hier den höchsten Wert.

    Code
    [COLOR=#000000][COLOR=#0000BB]$sql [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#DD0000]"SELECT owner, MAX(score) AS score, games, wins, loses, knockouts FROM `HeavySpleef_Statistics` GROUP BY owner"[/COLOR][COLOR=#007700];[/COLOR][/COLOR]
  • Nono so meinte ich es nicht :) (und oben steht auch was anderes^^)
    Das letzte Spiel jedes Spielers sollte ausgegeben werden :)
    Das mit MAX() wusste ich schon und habe ich auch bei anderen Tabellen benützt.


    mfg weini

  • wäre halt schön, wenn man von selbst auf die idee kommt, dass man max nicht nur bei Punkte einsetzten kann^^
    Werde es heute Nachmittag ausprobieren ^^
    danke.


    mfg
    weini

  • Wenn ich jetzt

    PHP
    SELECT owner, score, MAX(games) as games, wins, loses, knockouts FROM `HeavySpleef_Statistics` GROUP BY owner

    benutzte, dann kommt auch nicht das gewünschte Ergebnis raus:

    [TABLE='width: 500']

    [tr][td]

    Spieler

    [/td][td]

    Punkte

    [/td][td]

    Gespielt

    [/td][td]

    Gewonnen

    [/td][td]

    Verloren

    [/td][td]

    Knocukouts

    [/td][/tr][tr][td]

    P3

    [/td][td]

    999

    [/td][td]

    3

    [/td][td]

    0

    [/td][td]

    2

    [/td][td]

    0

    [/td][/tr][tr][td]

    P2

    [/td][td]

    999

    [/td][td]

    3

    [/td][td]

    0

    [/td][td]

    3

    [/td][td]

    1

    [/td][/tr][tr][td]

    P1

    [/td][td]

    1004

    [/td][td]

    3

    [/td][td]

    2

    [/td][td]

    0

    [/td][td]

    3

    [/td][/tr]


    [/TABLE]

    Wenn ich es jetzt richtig verstehe, nimmt es die höchste Anzahl von Spielen her (also das letzte) und dann bei den anderen das erste Vorkommen her. -> Falsch ;(
    mfg
    weini

    2 Mal editiert, zuletzt von weini37 (28. März 2013 um 14:57)

  • Kenne die Daten nicht die in der Tabelle stehen. Aber laut Handbuch gibt max den letzten Datensatz, also einen kompletten Eintrag in der Zeile raus für den der Maxwert zutrifft.

    Also entweder P1 hat nur 1004 Punkte oder was anderes stimmt nicht, worauf ich im Moment nicht komme.

    Die Spiele gibt es ja nur ein mal pro Spieler in der Tabelle oder?

    EDIT:lass dir doch mal alles ausgeben was games=3 hat.

    SELECT * FROM `HeavySpleef_Statistics` WHERE games=3

    Einmal editiert, zuletzt von explanator (28. März 2013 um 14:31)

  • Die Daten in der Tabelle stehen ganz oben (die erste)
    Nei leider nicht, ich weiß nicht ob es ein Bug ist, aber jedes mal, nachdem 30 min vergangen sind (oder der Server gestoppt wird), schreibt das Plugin alle Spiele hinein, was gespielt worden sind (siehe 1. Tabelle, Post1)

    mfg
    weini

  • Najo nicht ganz :)
    Wennst du jetzt schaust:
    Bei den beiden wo games = 2 is, da ist überall alles auch gleich. (Erste Zeile == 4. Zeile) also ist mir das eigentlich egal welches er von denen ausgibt.
    Nur ich brauche immer nur das letzte Spiel jedes Spielers.

  • Das letzte Spiel? also sozusagen zeitlich gesehen?

    Dann müsstest du am besten ein Datum oder Timestamp für die Spiele haben.

    Die Datenbank ist so aufgebaut, dass für jedes Spiel ein neuer Wert in die datenbank eingetragen wird, in dem dann die kumulierten Ergebnisse es Spielers stehen, ist das richtig?

    Deine Abfrage müsste also im prinzip dieses ergebnis liefern:
    für jeden Spieler die wins, loses, knockouts
    aus dem eintrag mir der höchsten anzahl an spielen

    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  • So habs herausgefunden, für alle die es interresiert:

    ALTER TABLE `HeavySpleef_Statistics` ORDER BY `wins` DESC;
    SELECT * FROM `HeavySpleef_Statistics` GROUP BY `owner`

  • sry, war die tage nicht da :)

    aber warum das alter table ?

    SELECT *
    FROM HeavySpleef_Statistics
    ORDER BY wins DESC
    GROUP by owner

    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!