oli: Rangliste richtig ausgeben

Hallo,

Ich möchte eine Rangliste (z.B. Platz 11-20) von einer MySQL Tabelle ausgeben, will dabei aber nicht alle Datensätze auslesen, also nicht so:

---
$query = 'select * from spieler order by punkte;';
$result=mysqli_query($link, $query);
$i=0;
while ( $row=mysqli_fetch_array($result)) {
  $i+=1;
  if($i>10 and $i<=20) {
    echo "<br>".$i.") ".$row[name];
  }
}
---

Meine Frage, wie macht man das normalerweise?

Bitte um Antwort.

Lg
Oli

  1. Hallo Oli,

    Ich möchte eine Rangliste (z.B. Platz 11-20) von einer MySQL Tabelle ausgeben, will dabei aber nicht alle Datensätze auslesen, also nicht so:

    $query = 'select * from spieler order by punkte;';

    "SELECT * " ist fast immer eine schlechte Idee.
    "SELECT spaltenliste " ist nahezu immer eine gute Idee.

    Meine Frage, wie macht man das normalerweise?

    mit der LIMIT-Klausel von SELECT.

    Freundliche Grüße

    Vinzenz

  2. Hallo Oli,

    sowas geht mit LIMIT.

    $query = 'select * from spieler order by punkte LIMIT 11, 20';

    1. Hallo,

      sowas geht mit LIMIT.

      ja.

      $query = 'select * from spieler order by punkte LIMIT 11, 20';

      Nein. Wie's richtig geht, kann Oli dem Link in meiner Antwort entnehmen.

      Freundliche Grüße

      Vinzenz

      1. Hallo,

        sowas geht mit LIMIT.

        ja.

        $query = 'select * from spieler order by punkte LIMIT 11, 20';

        Nein. Wie's richtig geht, kann Oli dem Link in meiner Antwort entnehmen.

        War etwas zu schnell:
        Bei LIMIT ist die erste Zahl der erste auszugebende Datensatz, die zweite Zahl ist die Anzahl der auszugebenden Datensätze.
         Also müsstest Du bei Datensatz 11-20 "LIMIT 11, 10" notieren, glaube ich.

        Freundliche Grüße

        Vinzenz

        1. Also müsstest Du bei Datensatz 11-20 "LIMIT 11, 10" notieren, glaube ich.

          glauben heisst nix wissen, wie wärs mit doku lesen? zb die doku, die vinzenz bereits verlinkt hat?

    2. achso, danke.

      Limit kenne ich eh, ich wusste nicht, dass man da auch 2 Zahlen nehmen kann.

      danke.