Php

Seitenaufteilung in Php (Php Tutorial)

Tutorial erstellt von Rene, letzte Änderung am 04.07.2007

Liebe User, da mich immer sehr viele Leute fragen "du, wie mach ich so ne Seitenaufteilung wie bei Gästebüchern?" werde ich das hier mal ein wenig erläutern.

Von vorne herein ist gesagt: Es ist nicht schwer, aber man sollte auch etwas erfahrung in der Materie haben.
Ich werde hier erklären, wie man Datensätze die aus einer MYSQl Datenbank kommen aufteilt.
Vorraussetzung ist natührlich eine aktive Verbindung zur Datenbank.
Ihr müsst natührlich eure Spalten und Tabellennamen ändern.
Nun gut kommen wir zum praktischen Teil:

Code:
$result =  mysql_query("SELECT * FROM db ORDER BY datum");
$gesamt =  mysql_num_rows($result);
$eintraege_pro_seite = 10;



Hier werden zuerst alle Datensätze ausgelesen und dann mit der funktion mysql_num_rows() gezählt. (Zeile 2)
Diesen Wert haben wir in $gesamt gespeichert.
!!!: Ändert in Zeile 1 Eure Spalten und Tabellennamen
In Zeile 3 wird festgelegt, wie viel Einträge pro Seite angezeigt werden.
Aktuell werden 10 Einträge angezeigt und dann wird auf die nächste Seite gewechselt.

Code:
$num_sites = ceil($gesamt/$eintraege_pro_seite);

if(empty($_GET['site'])) {
   $site = 1;
} elseif($_GET['site'] <= 0 || $_GET['site'] > $num_sites) {
   $site = 1;
} else {
   $site = $_GET['site'];
}

$links = array();
if($site != 1) {
   $prev = $site-1;
   $links[] = '<a href="seite.php?site='.$prev.'">&laquo;</a>';
}
for($i=1;$i<=$num_sites;$i++) {
   if($i == $site) {
       $links[] = $i;
   } else {
       $links[] = '<a href="seite.php?site='.$i.'">'.$i.'</a>';
   }
}
if($site != $num_sites) {
   $next = $site+1;
   $links[] = '<a href="seite.php?site='.$next.'">&raquo;</a>';
}
$link_string = implode(" | ", $links);
$start = ($site-1)*$eintraege_pro_seite;
$start2 = $start+1;
$ende = $start+10;


Dieser Code Teil Teilt jetzt die Seiten auf und setzt die Links
Es gibt 3 Links die ihr nach belieben Anpassen könnt:
$links[] = '<a href="seite.php?site='.$i.'">'.$i.'</a>';
seite.php dürft ihr verändern in eure Seite..
!!!: Achtet darauf das die Variable $site immer stehen bleibt.

So zur Ausgabe der Seitenanzeige:

Code:
echo ''.$link_string.'<br>Aktuelle Beiträge: '.$start2.' - '.$ende.'';


Alle drei Variablen wurden im oberen Code Teil schon festgelegt.
$link_string gibt die Seitenzahlen zurück und $start2 und $ende zeigt die Aktuellen Beiträge an.
Diese können auch weggemacht werden wenn man will.

So wir kommen nun zum Wichtigsten Teil des Scriptes:
Die Hauptausgabe.

Als erstes lesen wir wieder die Beiträge aus:

Code:
$result2 = mysql_query("SELECT * FROM db ORDER BY datum DESC LIMIT ".$start.",".$eintraege_pro_seite);


Hier wird mit $start und $eintraege_pro_seite festgelegt welche Einträge ausgelesen werden sollen.
!!!: Ändert wieder die Spalten und Tabellen Namen

Nach dem ihr das habt, könnt ihr über eine while schleife eure Beiträge ausgeben:

Code:
while ($row = mysql_fetch_array($result2)) {
  echo ''.$row[name].'';
}


Zeile 2 ändert ihr mit eurer gewünschten Ausgabe.

Ich hoffe es hat alles geklappt.
Ich wünsche euch viel Spaß mit eurer neuen Ausgabe.
Wenn ihr Fragen habt stellt sie einfach im Forum.

LG René

>> Allgemeine Fragen oder Probleme mit dem Tutorial? Hier gehts zum Forum!

Impressum / Datenschutzerklärung          © der-Webdesigner.net 2002 - 2008           top ▲