Manchmal ist es nicht ausreichend, wenn die Blätterfunktion alle Unterseiten anzeigt.
Dies ist z.B. der Fall, wenn man in einem Gästebuch o.ä. 80 Seiten hat.
Darum hier meine Funktion für eine Blätterfunktion, wo nur eine bestimmte Anzahl von Seiten angezeigt werden:
An die Funktion wird folgendes Übergeben: $seite: Auf welcher Seite der Besucher immoment ist. $maxseite: Wieviele Unterseiten es insgesamt gibt. $url: Die URL, auf die die Links verweisen sollen. $anzahl: Wieviele Links zu den Seiten ausgegeben werden soll. $get_name: Der GET-Name für die Seitenanzahl. Wenn dieser seite heißt, dann wird an die URL ?seite=xxx angehängt.
Die Werte für $url, $anzahl und $get_name sind optional.
Kombination mit der einfachen Blätterfunktion
Dieses lässt sich eigentlich sehr einfach mit unserer einfachen Blätterfunktion kombinieren. Als erstes muss man natürlich irgendwie die Funktion mit einbinden, entweder in einer anderen Datei auslagern und per include laden oder direkt in die Datei einbinden.
Anschließend, dort wo vorher die Ausgabe der Seiten waren, steht nun der Aufruf der Funktion.
<?php
//Hier muss die Funktion 'blaetterfunktion' stehen
//Entweder per include laden, oder
//direkt einbinden, also
//function blaetterfunktion($seite,$maxseite,$url="",$anzahl=4,$get_name="seite") //{
//...
//}
// Alter Code wie gewohnt
$seite = $_GET["seite"]; //Abfrage auf welcher Seite man ist
//Wenn man keine Seite angegeben hat, ist man automatisch auf Seite 1
if(!isset($seite))
$seite = 1;
//Verbindung zu Datenbank aufbauen
$mysqli = new mysqli("localhost", "user", "password", "database");
//Einträge pro Seite: Hier 15 pro Seite
$eintraege_pro_seite = 15;
//Ausrechen welche Spalte man zuerst ausgeben muss:
//Tabelle Abfragen
//Tabelle heißt hier einfach: Tabelle
$abfrage = "SELECT * FROM Tabelle LIMIT $start, $eintraege_pro_seite";
$ergebnis = $mysqli->query($abfrage);
while($row = $ergebnis->fetch_object())
{
echo $row->id."<br>"; // Hier die Ausgabe der Einträge
}
//Jetzt kommt das "Inhaltsverzeichnis",
//sprich dort steht jetzt: Seite: 1 2 3 4 5
//Wie viele Einträge gibt es überhaupt
//Wichtig! Hier muss die gleiche Abfrage sein, wie bei der Ausgabe der Daten
//also der gleiche Text wie in der Variable $abfrage, bloß das hier das LIMIT fehlt
//Sonst funktioniert die Blätterfunktion nicht richtig,
//und hier kann nur 1 Feld abgefragt werden, also id
//Errechnen wie viele Seiten es geben wird
$wieviele_seiten = ceil($menge / $eintraege_pro_seite);
//Ausgabe der Seitenlinks:
echo "<div align=\"center\">";
echo "<b>Seite:</b> ";
//*****************************************
//* Dieser Abschnitt ist neu
//*****************************************
//Aufruf unserer Funktion
echo blaetterfunktion($seite, $wieviele_seiten);
echo "</div>";
?>
Für Fragen bitte extra Thema im PHP-Forum eröffnen.
Kann ich auch die seite zb 10 oder 80 anschauen oder werden nur 5 links ausgegeben?
und springt er mit wenn ich auf eine seite weiter gehe?
also bin jetzt auf Seite 5
[...]4,5,6[...]
und wenn ich dann auf seite 6 gehe
[...]5,6,7[...]
oder ist die ausgabe der links fest?
das nur max 10 seiten angezeigt werden koennen?
ich bin auch sehr erleichtert gewesen über das Tutorial. Allerdings habe ich dann letztendlich doch noch etwas verändert (ausschließlich der Anpassung).
Ich hab vor den return noch eine Zeile eingeschoben.
habe mal die normale Blätterfunktion bei mir soweit eingebaut und soweit funktioniert auch alles nur es gibt eine unschöne meldung wenn man die seiter zum ersten mal aufruft und zwar:
Notice: Undefined index: seite in ... on line 6
in der zeile ist dieser Code:
PHP
1:
$seite = $_GET["seite"];
Wäre super wenn mir da einer helfen könnte wie ich diese meldung beseitigen, da so alles funktioniert mit der Blätterfunktion.
Bin für jeden tipp oder hilfe dankbar.
MfG
Rajan
----------------------------------------------
Morgen,
habe das Problem selber lösen können
Post wurde schon 1x editiert, das letzte mal am 03.06.2008 um 09:33 von Rajan
Ich habe sehr lange nach einem guten Tutorial gesucht. Gut im sem Sinne, das ich als PHP Einsteiger die einzelnen Schritte verstehe.
Das Tutorial hat mir das alles sehr verständlich gemacht. Da ich vorher bereits meinen eigenen Code zur Aus- und Eingabe der Einträge erstellt hatte konnte ich den Code auch nicht einfach kopieren ^^ musste noch viel rumbasteln und hab jetzt insgesamt 2 wochen für ein gästebuch gebraucht, aber vielen Dank für die unterstützung mit den seitenzahlen... da bin ich zuerst gar nicht durch gestiegen!!
Leider funktioniert die erweiterte Version bei mir auch noch nicht, aber ich werds schon rausfinden auf jeden fall bin ich glücklich dasses jetzt erstmal läuft
09.07.2008, 09:35
Aragorn
Mitglied
Anfänger
Dabei seit: 06.10.2006
Herkunft: keine Angabe
Posts: 44
Ich habe mir das Script angeschaut, und mir ist aufgefallen, dass "letzte", nicht so geht wie es gehen sollte, es spring immer nur ein paar Seiten weiter.
kann mir jemand einen Tipp geben wie ich die erweiterte Blätterfunktion um Buttons für vor und zurück erweitern kann?
Eigentlich wäre das kein Problem (z.B. ($seite+1)), ich finde mich aber in der Funktion "function blaetterfunktion" nicht richtig zurecht und weiß nicht so richtig wie ich den Link plazieren muß.