Als ich noch Anfänger in PHP war suchte ich lange nach einer Blätterfunktion.
Dabei ist mir aufgefallen das es kaum welche gibt und die wenigen die man frei kriecht sind meistens sehr minderwertig.
Da hab ich mich mal rangesetzt und eine Richtige Blätterfunktion gebastelt. (im Anhang)
Sie erzeugt eine Linkzeile mit den Links erste und letzte Seite, Seite davor und danach und eine angegebene Anzahl an Seitenzahlen
und das sieht so aus: « < 1 2 3 4 5 > »
array blatter ( string $mysql_daten , int $einträge [, int $index_plus_minus [, string $browser_get [, string $getvar ]]] )
[INDENT]Parameter[INDENT] $mysql_daten
erwartet einen string in dem der Tabellenname steht
außerden können hier weitere angaben wie WHERE getetigt werden
ORDER BY ist unnötig. Beispiel: "tablennename WHERE id <= 50"
$eintäge
erwartet ein INT mit der Anzahl an Zeilen die auf einmal ausgegeben werden sollen.
$index_plus_minus
erwartet ein INT mit der Anzahl an Seiten die, die Blätterfunktion in die
Linkzeile schreiben soll also bei 3 würde in der linkzeile auf der 5ten seite:
3 4 5 6 7 stehen. 3 ist der Standardwert.
$browser_get
enthält den link der die einzelnen Seiten aufrufen soll. Standard: "?seite="
die Seitennummer wird automatich an dass ende gehängt
$getvar
erwartet den namen des getindex der die aktuelle Seite enthält. Stardart:"seite"
[/INDENT]Rückgabe[INDENT]gibt ein array zurück
index 0: der Limitwert
index 1: der string der die Navigation enthält
[/INDENT]Beispiel[INDENT]
<?php
include("blatter.php"); //einbindung der datei
$db = "db WHERE text IS NOT NULL"; //hier steht der Tabellenname und weitere Angaben
$zeilen_anzahl = 5; //Damit werden 5 Zeilen wiedergegeben
$seiten_anzahl = 3; //Damit werden 3 Seiten Zahlen um die aktuelle herum Datgestellt
$adresse = "?seite="; //Hier wird die Adresse angegeben kann auch "data.php?etwas=anderes&seite=" sein
$getvariabel = "seite"; //Hier kommt der index der Getvariabel hin, kann also auch "irgentwas" sein
//Der Aufruf der Funktion
$blatter = blatter($db, $zeilen_anzahl, $seiten_anzahl, $adresse, $getvariabel);
//Nun die Mysql Abfrage die die Informationen aus der Datenbank holt
$abfrage = mysql_query("SELECT id, text FROM db ORDER BY id DESC LIMIT ".$blatter[0]);
echo $blatter[1]; //enthält die Navigation (« < 1 2 3 4 5 > »)
//Ausgabe aller Zeilen
while($zeile = mysql_fetch_row($abfrage))
{
echo $id,$zeile;
}
echo $blatter[1];
?>
Alles anzeigen
[/INDENT][/INDENT]Dieser gesamte Code gibt folgendes wieder:
<a href="?seite=1">«</a> <a href="?seite=2"><</a> <a href="?seite=1">1</a> <a href="?seite=2">2</a> 3 <a href="?seite=4">4</a> <a href="?seite=5">5</a> <a href="?seite=4">></a> <a href="?seite=5">»</a>
Puhh... ziemlich viel geschrieben
hoffe es hilft;-)
Wenn ihr nett seit macht ihr wenn ihr es benutzt noch ein Link auf die Seite http://sett.bplaced.net/downloads/blatterfunktion.
EDIT: Habe das Script aktualisiert