Code:
SELECT * FROM `tabelle` LIMIT x,y
Hierbei bedeutet 'x' der Anfang, ab dem die Daten ausgegeben werden, y gibt die Anzahl der Datensätze an. So gibt
Code:
SELECT * FROM `tabelle` LIMIT 0,10
die ersten zehn Datensätze aus einer Tabelle zurück. In der Regel kombiniert man dies noch mit einer Sortierung mittels 'ORDER BY'.
Hier ein kleines Beispielskript:
Php-Code:
<?php
$seite = 5 //Anzahl der Daten pro Seite
//Falls der Wert 'offset' via GET übergeben wurde, diesen auslesen, ansonsten bei 0 anfangen.
if (isset($_GET['offset']))
$offset = intval($_GET['offset']);
else
$offset = 0;
//Gesamtzahl der Datensätze in der Tabelle ermitteln
list($anzahl) = mysql_fetch_array(safe_query("SELECT COUNT(*) FROM `tabelle`"));
//$anzahl Datensätze nach Datum sortiert auswählen
$query = "SELECT * FROM `tabelle` ORDER BY `datum` DESC LIMIT $offset, $seite";
$result = safe_query($query);
//Hier würde nun die Ausgabe der Ergebnisse erfolgen. Da dies stark Datenabhängig ist, wird der Teil weggelassen
{....}
//Navigation erzeugen, in diesem Fall ein einfaches Vor bzw. Zurück, es können natürlich auch Seiten angezeigt werden
if ($offset > 0)
{
//Falls nicht der erste Eintrag angezeigt wird, kann immer eine Seite zurück gegangen werden.
echo '<a href="index.php?offset="'.($offset - $seite).'"><< vorherige Einträge</a> ';
}
if ($offset + $seite < $anzahl)
{
echo '<a href="index.php?offset="'.($offset + $seite).'"> nächste Einträge >></a>';
}
?>
Hier sollte nur der grobe Aufbau gezeigt werden, man sollte natürlich noch die Daten prüfen, z.B. ob $offset negativ ist. Es ging lediglich darum, die grundlegende Technik zu demonstrieren.