mySQL: Tabelle mit 60 Einträgen, aber nur 20 ausgeben?
Steffen
- php
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
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
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
Hi Steffen,
so:
$abfrage = "SELECT * FROM tabelle ORDER BY ranking LIMIT 0, 20";
Gruss Sven
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