Ankündigung

Einklappen
Keine Ankündigung bisher.

Abfrage Problem

Einklappen

Neue Werbung 2019

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

  • Abfrage Problem

    Hallo,
    ich möchte eine Abfrage erstellen, welche mir die Zeile(=Platz) eines bestimmten Spielers ausgibt.


    Meine Tabelle besteht aus:

    id ( 1, 2, 3,...)
    points ( 293, 494, 9348, ...)
    player ( p1, p49, p983, ...)


    Nun möchte ich eben die Zeile(=Platz) von z.B. p49 sotiert nach points haben ( höchste pointszahl = Platz 1 )


    Wie stell ich das an, evtl. irgendwie mit num_rows ? plz helft mir

  • #2
    Code:
    SELECT `player`, `points` FROM table ORDER BY `points`
    und dann als while-Schleife ausgeben mit mysql_fetch_array

    Kommentar


    • #3
      -

      ich möchte nicht alle ausgeben, sondern nur von einem bestimmten und den seinen rang würde ich gerne wissen

      Kommentar


      • #4
        Da sehe ich keinen schnellen Weg. Entweder du liest die Tabelle sortiert bis zum gesuchten Spieler ein und gibst dann den Rang aus:
        Code:
        $player = 'p49';   // z.B.
        $sql = "SELECT player, points FROM table ORDER BY points DESC";
        $res = mysql_query($sql) or die(mysql_error());
        $rang = 1;
        while ($row = mysql_fetch_object($res) and $row->player != $player)
        {
            $rang ++;
        }
        echo "$row->player steht auf dem $rang. Rang
        ";
        oder du erstellst eine eine temporäre Tabelle, mit den Rängen
        Code:
        $sql = 'CREATE TEMPORARY TABLE rang( 
            rang integer unsigned auto_increment, 
            primary key(sch))
            SELECT player, points FROM table ORDER BY points DESC';
        $res = mysql_query($sql) or die(mysql_error());
        $sql = "SELECT rang from rang WHERE player = $player";
        $res = mysql_query($sql) or die(mysql_error());
        $row = mysql_fetch_object($res);
        echo "$row->player steht auf dem $row->rang
        ";
        $sql = 'drop table rang';
        mysql_query($sql) or die(mysql_error());
        was noch aufwändiger ist.
        Beides (fast) ungetestet.
        Gruss
        L

        Kommentar


        • #5
          danke

          danke die erste lösung ist wunderbar

          Kommentar

          Lädt...
          X