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: Alles auswählen
$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: Alles auswählen
$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.'">«</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.'">»</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: Alles auswählen
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: Alles auswählen
$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: Alles auswählen
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 postet Sie einfach.
LG René