Steffen: mySQL: Tabelle mit 60 Einträgen, aber nur 20 ausgeben?

Hi,

ich möchte folgendes: Ich habe eine mySQL-Datenbank und dort eine Tabelle mit vielen Einträgen. Diese lasse ich hiermit ausgeben:

$abfrage = "SELECT * FROM tabelle ORDER BY ranking";
  $ergebnis = mysql_query($abfrage);
  while ($row = mysql_fetch_array ($ergebnis))
  {
  echo $wert1;
  }

Enthält meine Tabelle nun 60 Einträge, so wird 60 mal ein Wert ausgegeben.

Ich möchte nun aber, dass nur die ersten 20 ausgegeben werden... und zwar diejenigen mit dem höchsten Zahlenwert.

Wie mache ich das?

Grüsse
Steffen

  1. Sorry, da hatte sich ein kleiner Fehler in meiner Syntax eingeschlichen:

    $abfrage = "SELECT * FROM tabelle ORDER BY ranking";
      $ergebnis = mysql_query($abfrage);
      while ($row = mysql_fetch_array ($ergebnis))
      {
      echo $wert1;
      }

    es muss natürlich nicht

    echo $wert1;

    heissen, sondern so:

    echo $row[wert1];

    Grüsse
    Steffen

    1. Moin!

      es muss natürlich nicht

      echo $wert1;

      heissen, sondern so:

      echo $row[wert1];

      Nein, auch falsch. Wenn wert1 ein String ist und den Feldnamen bezeichnet, muss es $row['wert1'] oder $row["wert1"] heissen.

      $row[wert1] darf es nur heissen, wenn du zuvor eine Konstante mit dem Namen wert1 definiert hast.

      - Sven Rautenberg

      --
      "Bei einer Geschichte gibt es immer vier Seiten: Deine Seite, ihre Seite, die Wahrheit und das, was wirklich passiert ist." (Rousseau)
  2. Hi Steffen,

    so:
     $abfrage = "SELECT * FROM tabelle ORDER BY ranking LIMIT 0, 20";

    Gruss Sven

  3. HI,

    $abfrage = "SELECT * FROM tabelle ORDER BY ranking";
      $ergebnis = mysql_query($abfrage);
      while ($row = mysql_fetch_array ($ergebnis))
      {
      echo $wert1;
      }

    entweder Du lässt in der while-schleife einen Zähler mitlaufen
    $i und setzt noch die Abbruchbedingung wenn $i<20 mit rein

    oder Du machst das Ganze schon in der Select-Abfrage mit offset und limit
    wobei offset der startpunkt (bei Dir 0) ist und limit die Anzahl (bei dir 20)
    ist.

    Das order by ranking solte ja schon die richtige Reihenfolge haben? Wenn nicht vielleicht noch ein desc oder asc miteinfügen, damit die db weiss wie sie sortieren soll (auf- oder absteigend)

    ciao
    romy

    --
    DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
    ->Alles ist gut wenn es aus Schokolade ist