Daten auf mehreren Seiten aufteilen
Damit nicht alle Daten auf einmal auf der Seite zu sehen sind, sondern übersichtlich auf mehreren Seiten verteilt stehen, benutzt man eine Seitennavigation zum blättern (Blätterfunktion / Pagination).
- Seitennavigation mit Zahlen (Datei)
- Kombinierte Formular.- und Blätterfunktion (Datei)
- Kombinierte Formular.- und Blätterfunktion (mysqli())
- Verzeichnis-Dateien auf mehreren Seiten aufteilen
- Bilder auf mehreren Seiten aufteilen
Seitennavigation mit Zahlen (Datei)
Daten einer externen Datei auf mehreren Seiten aufteilen.
Quelltext: Ausblenden ❘ Kopieren ❘ Link ❘ Zeilen ❘
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<!DOCTYPE html>
<html>
<head>
<title>Daten aus einer Datei auf mehreren Seiten aufteilen</title>
<style>
body {
font-family: Verdana, Sans-Serif;
background-color: Oldlace;
}
a:link, a:visited {
text-decoration: None;
color: #FF0000;
}
</style>
</head>
<body>
Blindtext - Seite:
<?php
/* Daten aus einer Datei auf mehreren Seiten aufteilen */
// Datei "blindtext.txt" in ein Array ($daten) einlesen
// Trennzeichen ist der Zeilenumbruch (CR)
$daten = file("blindtext.txt");
// Um ein anderes Trennzeichen zu benutzen lesen Sie die Datei mit:
// $daten = file_get_contents("blindtext.txt")
// ein und teilen Sie die Daten mit explode(Trennzeichen, $daten):
// $daten = explode(";", $daten);
// Wieviele Einträge sollen pro Seite angezeigt werden
$eintraege_pro_seite = 2;
// Überprüfen ob über $_GET["seitenzahl"] eine Seitenzahl gesendet wurde
$seitenzahl = ((isset($_GET["seitenzahl"])) ? $_GET["seitenzahl"] : 0);
$fortlaufende_nummer = 0; // $fortlaufende_nummer auf 0 setzen
// Die Schleife zeigt jeden X-ten ($eintraege_pro_seite) Datensatz mit einem Link an
for ($zaehler = 0; $zaehler < count($daten); $zaehler = $zaehler + $eintraege_pro_seite) {
$fortlaufende_nummer++; // $fortlaufende_nummer erhöhen
// Mit dem Link wird seitenzahl=$zaehler als $_GET["seitenzahl"] übergeben
echo '<a href="?seitenzahl=' . $zaehler . '">' .
// Die aktuelle Seite hervorheben
(($zaehler == $seitenzahl) ? "[" . $fortlaufende_nummer . "]" : $fortlaufende_nummer) .
'</a> ';
}
// Die ausgewählten Datensätze in einer Schleife ausgeben
for ($zaehler = $seitenzahl; $zaehler < ($seitenzahl + $eintraege_pro_seite); $zaehler++) {
if (isset($daten[$zaehler])) {
echo "<p>" . ($zaehler + 1) . ". " . $daten[$zaehler] . "</p>\n";
}
}
?>
</body>
</html>
Kombinierte Formular.- und Blätterfunktion (Datei)
Daten einer externen Datei auf mehreren Seiten aufteilen. Mit den Pfeilsymbolen zur nächsten oder vorherigen Seite wechseln oder durch die Eingabe einer Seitenzahl in das Formularfeld.
Quelltext: Ausblenden ❘ Kopieren ❘ Link ❘ Zeilen ❘
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<!DOCTYPE html>
<html>
<head>
<title>Daten aus einer Datei auf mehreren Seiten aufteilen
(Kombinierte Formular.- und Blätterfunktion)</title>
<style>
body {
font-family: Verdana, Sans-Serif;
background-color: Mintcream;
}
a:link, a:visited {
text-decoration: None;
color: #FF0000;
}
</style>
</head>
<body>
Blindtext
<?php
/* Daten aus einer Datei auf mehreren Seiten aufteilen
(Kombinierte Formular.- und Blätterfunktion) */
// Datei "blindtext.txt" in ein Array ($daten) einlesen
// Trennzeichen ist der Zeilenumbruch (CR)
$daten = file("blindtext.txt");
// Um ein anderes Trennzeichen zu benutzen lesen Sie die Datei mit:
// $daten = file_get_contents("blindtext.txt")
// ein und teilen Sie die Daten mit explode(Trennzeichen, $daten):
// $daten = explode(";", $daten);
$daten = array_merge(array(0=>""), $daten);
$AnzahlDatensaetze = count($daten) - 1;
// Die Aktuelle Seite ermitteln
$AktuelleSeite = $_GET["seite"] ?? 1;
// Den über $_GET gesendeten Wert überprüfen und ggf. ändern
$AktuelleSeite = is_string($AktuelleSeite) && preg_match('/^(\-|\+)?[0-9]+$/', trim($AktuelleSeite)) ? $AktuelleSeite : 1;
$AktuelleSeite = $AktuelleSeite < 1 || $AktuelleSeite > $AnzahlDatensaetze ? 1 : $AktuelleSeite;
// Die Datensatz ausgeben
if (isset($daten[$AktuelleSeite])) {
echo "<p>" . $daten[$AktuelleSeite] . "</p>\n";
}
// Formular.- und Blätterfunktion
echo '<form action="' . $_SERVER["SCRIPT_NAME"] . '" method="GET" autocomplete="off">' .
(($AktuelleSeite - 1) > 0 ?
'<a href="?seite=' . ($AktuelleSeite - 1) . '">«</a>' :
' «') .
' <label>Seite <input type="text" value="' . $AktuelleSeite . '" name="seite" size="3"
title="Seitenzahl eingeben und Eingabetaste betätigen"> von ' . $AnzahlDatensaetze . '</label>' .
(($AktuelleSeite + 1) <= $AnzahlDatensaetze ?
' <a href="?seite=' . ($AktuelleSeite + 1) . '">»</a>' :
' »') .
'</form>';
?>
</body>
</html>
Kombinierte Formular.- und Blätterfunktion (mysqli())
Daten aus einer Datenbank-Tabelle auf mehreren Seiten aufteilen. Mit den Pfeilsymbolen zur nächsten oder vorherigen Seite wechseln oder durch die Eingabe einer Seitenzahl in das Formularfeld.

Ein Beispiel für PDO() finden Sie unter: Kombinierte Formular.- und Blätterfunktion
Quelltext: Ausblenden ❘ Kopieren ❘ Link ❘ Zeilen ❘
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
// Kombinierte Formular.- und Blätterfunktion mysqli()
// Verbindung zur Datenbank aufbauen
$db = mysqli_connect("localhost", "root", "", "test");
mysqli_set_charset($db, "utf8"); // Zeichensatz UTF-8 setzen
// Anzeige der Datensätze pro Seite
$DatensaetzeSeite = 10;
// Anzahl der Datensätze ermitteln
$AnzahlDatensaetze = mysqli_num_rows(mysqli_query($db, "SELECT `id` FROM `nachrichten` "));
// Die Anzahl der Seiten ermitteln
$AnzahlSeiten = ceil($AnzahlDatensaetze / $DatensaetzeSeite);
// Die Aktuelle Seite ermitteln
$AktuelleSeite = $_GET["seite"] ?? 1;
// Den Wert überprüfen und ggf. ändern
$AktuelleSeite = is_string($AktuelleSeite) && preg_match('/^(\-|\+)?[0-9]+$/', trim($AktuelleSeite)) ? $AktuelleSeite : 1;
$AktuelleSeite = $AktuelleSeite < 1 || $AktuelleSeite > $AnzahlSeiten ? 1 : $AktuelleSeite;
// Den Versatz ermitteln
$Versatz = $AktuelleSeite * $DatensaetzeSeite - $DatensaetzeSeite;
// Datensätze auslesen
$datensaetze = mysqli_query($db, "
SELECT `id`, `autor`, `titel`, `nachricht`, `datum`
FROM `nachrichten`
ORDER BY `datum` ASC
LIMIT " . $Versatz . ", " . $DatensaetzeSeite);
// Datensätze ausgeben
foreach ($datensaetze as $datensatz) {
echo '<p>' . $datensatz['datum'] . ' <b>' . $datensatz['titel'] . '</b> ' .
$datensatz['autor'] . '<br>' . $datensatz['nachricht'] . '</p>';
}
// Formular.- und Blätterfunktion
echo '<form method="GET" autocomplete="off">' .
(($AktuelleSeite - 1) > 0 ?
'<a href="?seite=' . ($AktuelleSeite - 1) . '">«</a>' :
' «') .
' <label>Seite <input type="text" value="' . $AktuelleSeite . '" name="seite" size="3"
maxlength="3" title="Seitenzahl eingeben und Eingabetaste betätigen"> von ' . $AnzahlSeiten . '</label>' .
(($AktuelleSeite + 1) <= $AnzahlSeiten ?
' <a href="?seite=' . ($AktuelleSeite + 1) . '">»</a>' :
' »') .
'</form>';
?>
Verzeichnis-Dateien auf mehreren Seiten aufteilen
Die Verzeichnis-Dateien (Dateiname, Dateigröße und Datum) werden übersichtlich in einer HTML-Tabelle ausgegeben.
Quelltext: Ausblenden ❘ Kopieren ❘ Link ❘ Zeilen ❘
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<!DOCTYPE html>
<html>
<head>
<title>Daten auf mehreren Seiten aufteilen</title>
</head>
<body>
<?php
/* Verzeichnis-Dateien auf mehreren Seiten aufteilen (PHP5) */
// Anzeige der Einträge pro Seite
$eintraege_seite = 5;
// Verzeichnis
$verzeichnis = "verzeichnis/";
$daten = array_slice(scanDir($verzeichnis), 2);
$ausgabe = array();
foreach ($daten as $datei) {
$ausgabe[] = '<tr>' .
'<td> ' . $datei . ' </td>' .
'<td>' . number_format((filesize($verzeichnis . $datei) / 1024), 2, ",", ".") . ' KB</td>' .
'<td>' . date("d.m.Y", fileMtime($verzeichnis . $datei)) . '</td>' .
'</tr>';
}
$seitenzahl = ((isset($_GET["seitenzahl"])) ? $_GET["seitenzahl"] : 0);
$nr = 0;
echo '<p>Seite: ';
for ($zaehler = 0; $zaehler < count($ausgabe); $zaehler = $zaehler + $eintraege_seite) {
$nr++;
echo (($zaehler == $seitenzahl) ? ' <b>' . $nr . '</b>' :
' <a href="?seitenzahl=' . $zaehler . '">' . $nr . '</a>') .
' ';
}
echo '</p><table border="1">
<tr><th>Name</th><th>Größe</th><th>Datum</th></tr>';
for ($zaehler = $seitenzahl; $zaehler < ($seitenzahl + $eintraege_seite); $zaehler++) {
if (isset($ausgabe[$zaehler])) {
echo $ausgabe[$zaehler];
}
}
echo '</table>';
?>
</body>
</html>
Bilder auf mehreren Seiten aufteilen
Quelltext: Ausblenden ❘ Kopieren ❘ Link ❘ Zeilen ❘
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<title>Bilder auf mehreren Seiten aufteilen</title>
<style>
body {
font-family: Verdana, Arial, Sans-Serif;
}
span.akt_seite {
padding: 2px 5px 2px 5px;
background-color: #F4F4F4;
border: Solid 1px #c0c0c0;
cursor: Default;
}
a.link_seite:link, .link_seite:visited {
padding: 2px 5px 2px 5px;
background-color: #ECECFF;
border: Solid 1px #BFBFFF;
text-decoration: None;
}
figure img {
max-width: 100%;
height: Auto;
box-shadow: 1px 1px 5px #888888;
}
</style>
</head>
<body style="text-align: center;">
<?php
/* Bilder auf mehreren Seiten aufteilen (PHP5) */
// Anzeige der Bilder pro Seite
$bilder_seite = 3;
// Verzeichnis
$verzeichnis = "bilder/";
// Bildtypen
$bildtypen = array(".gif", ".png", ".jpg", );
// Verzeichnis auslesen
$dateien = array_slice(scanDir($verzeichnis), 2);
$ausgabe = [];
foreach ($dateien as $datei) {
if (in_array(substr($datei, -4), $bildtypen)) {
list($breite, $hoehe) = getimagesize($verzeichnis . $datei);
$ausgabe[] = '<img src="' . $verzeichnis . $datei . '" width="' . $breite . '" height="' . $hoehe . '">';
}
}
// Navigation
$seitenzahl = ((isset($_GET["seitenzahl"])) ? $_GET["seitenzahl"] : 0);
$nr = 0;
echo '<p>Seite: ';
for ($zaehler = 0; $zaehler < count($ausgabe); $zaehler = $zaehler + $bilder_seite) {
$nr++;
echo (($zaehler == $seitenzahl) ? ' <span class="akt_seite">' . $nr . '</span>' :
' <a href="?seitenzahl=' . $zaehler . '" class="link_seite">' . $nr . '</a>') .
' ';
}
echo '</p>';
// Bilder anzeigen
for ($zaehler = $seitenzahl; $zaehler < ($seitenzahl + $bilder_seite); $zaehler++) {
if (isset($ausgabe[$zaehler])) {
echo '<figure>' . $ausgabe[$zaehler] .'</figure>';
}
}
?>
</body>
</html>
Tipps
- Hinzufügen von Wasserzeichen beim hochladen eines Bildes
- Ein Wasserzeichen ist die beste Option, um das Bild vor Diebstahl oder der Wiederverwendung durch eine andere Person zu schützen. Sie können den Besitz anzeigen, indem Sie dem Bild Wasserzeichen hinzufügen. Das Wasserzeichen hilft, den Ersteller zu identifizieren.
- Kontaktformular - E-Mail mit PHPMailer und SMTP versenden
- Manchmal möchte man die E-Mail vom Kontaktformular über dem PHPMailer und SMTP versenden. Weil das aber nicht so einfach ist und bestimmte Einstellungen beachtet werden müssen, stelle ich hier beispielhaft ein PHP-Skript vor.
- Spalten einer Tabelle dynamisch ändern
- Manchmal möchte man die Spalten einer Tabelle dynamisch ändern so das diese individuell angezeigt werden können, wie das geht wird hier an einem Beispiel demonstriert.
- Text-Dateien über PHP laden und bearbeiten
- Über PHP lassen sich Text-Dateien in ein Formular laden und bearbeiten. Der geänderte Text wird, nach dem absenden des Formulars, wieder in der Datei gespeichert.
Abonniere meinen RSS-Feed
um über aktuelle Seiten benachrichtigt zu werden.
Zeit-Differenz Countdown-Generator PHP-Fehlermeldungen Authentifizierung Canvas Chatroom Farbschema Mauszeiger Webseitenschutz Berechnungen Animierte Sternebewertung Textgestaltung Arithmetische Operatoren Stoppwortliste Formular Generator Zufallsfarbe Veranstaltungsliste Lokaler Webserver Gästebuch Kommentar-Box CSRF-Token Dynamische Seiten Mimetypen Dateibrowser Event-Kalender