Mysql, Spieler,Score,Money

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Tach Community,


    Ich arbeite derzeit an einem "TOP Ranked" System, welches alle Spieler aus der DB ausliest dazu den Score und das Geld.


    Ich wollte dies ursprünglich in einen 2D Array speichern ("NAME","SCORE" und "NAME","GELD")
    Jedoch komme ich jetzt nicht weiter wie ich das am besten mache.


    Zuvor zähle ich alle ACCs welche in der DB sind. Das funktioniert schonmal.


    Aber wie gehts jetzt weiter?

    MFG

  • Deine Beschreibung ist nicht gerade gut.


    Du kannst nicht die Anzahl an Benutzern in der Datenbank benutzen, um ein Array dieser größe dynamisch anzulegen.
    Die Arbeit der Top-List kann man auch der Datenbank übergeben:
    ORDER BY
    SQL TOP / LIMIT


    Das könnte dann sowas sein:

    SQL
    -- TOP 10 Spieler am Score gemessen.
    SELECT `Name`,`Score`
    FROM `Users`
    ORDER BY `Score` DESC
    LIMIT 10


    Damit hast du dann schon alle Ergebnisse sortiert und musst die "nur noch" ausgeben.

  • Ah gut danke, und wieder was gelernt ;D


    new query[130],get[230];
    format(query,sizeof(query),"SELECT `Name`,`Score` FROM `accounts` ORDER BY `Score` DESC LIMIT 5 ");
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_row(get);
    mysql_free_result();

    printf(get);



    Bekomme beim print nur einen Namen raus.
    Goldkiller:

  • Ich hab das Zitieren ausgeschaltet und für dich gilt ebenfalls die Edit-Regel.


    Mit dem Query bekommst du nicht nur 1 Ergebnis, sondern bis zu 5. Es ist wie ein Array zu verstehen, sodass du jeden Einzelnen Index durchgehen musst.
    Du musst eine while-Schleife in Verbindung mit mysql_fetch_row nutzen, um alle Ergebnisse zu erhalten.

    Spoiler anzeigen
    Neben while würde auch sicherlich for etc funktionieren.

    Da ich nicht weiss welches MySQL Plugin + Version du nutzt, kann ich dir auch kein passendes Wiki Beispiel verlinken.
    Vom Prinzip her sieht es aber so aus:
    http://wiki.sa-mp.com/wiki/MySQL#mysql_fetch_row_format
    while( mysql_fetch_row(get) ) {
    print(get);
    }
    mysql_free_result();