sebastiangdot
Grünschnabel
Nicht getestet, hatte dafür keine Zeit.
Ausgabe so anpassen:
Der Dr. hat allerdings Recht, wenn er sagt, dass diese Lösung bei mehr als, sagen wir 300 Einträgen, unperformant wird. Wenn Du partout bei Text-Datenbank bleiben willst, dann solltest Du Dir überlegen, ob Du auf das HTML in der Datenbank verzichtest und nur die Rein-Infos in Form von CSV (Also, Daten pro Zeile mit Semikolon separiert) speicherst. Das würde Speicherplatz und Auslesezeit sparen.
Die datenbank müsste dann so aussehen:
Sebastian;mail@world.net;http://www.google.de;Tolles Gästebuch!
Hans;hans@world.net;http://www.yahoo.de;Zweiter Eintrag...
Beim Auslesen müsstest Du dann jede Zeile extrahieren:
list($name, $email, $homepage, $eintrag) = explode(';', $line);
Und das HTML erst bei der Ausgabe zusammensetzen.
Beim Schreiben in die Datenbank sicherstellen, dass in den Userdaten keine Semikolen vorkommen:
$name = str_replace(';', ':', $name);
$email = ...
$homepage = ...
$eintrag = ...
Ausgabe so anpassen:
PHP:
<?php
$per_page = 10;
$current_page = ((int)trim($_GET['p']) > 0 ? (int)trim($_GET['p']) : 1);
$lines_total = array_reverse( file( 'daten.dat' ) );
$pages_count = ceil(count($lines_total) / $per_page);
$lines = array_slice($lines_total,
(($per_page * $current_page) - $per_page),
$per_page);
if (count($lines_total) > $per_page) {
echo "Blättern: Seite ".(int)$current_page
." von ".$pages_count." ";
if ($current_page > 1) {
echo "<a href='dein_script.php?p=1'><<Start</a> ";
echo "<a href='dein_script.php?p=".($current_page - 1)."'><Zurück</a> ";
}
if ($current_page < $pages_count) {
echo "<a href='dein_script.php?p=".($current_page + 1)."'>Vor></a> ";
echo "<a href='dein_script.php?p=".$pages_count."'>Ende>></a> ";
}
}
if (is_array($lines)) {
foreach ($lines as $line ){
echo trim($line)."<br><br>";
}
}
?>
Der Dr. hat allerdings Recht, wenn er sagt, dass diese Lösung bei mehr als, sagen wir 300 Einträgen, unperformant wird. Wenn Du partout bei Text-Datenbank bleiben willst, dann solltest Du Dir überlegen, ob Du auf das HTML in der Datenbank verzichtest und nur die Rein-Infos in Form von CSV (Also, Daten pro Zeile mit Semikolon separiert) speicherst. Das würde Speicherplatz und Auslesezeit sparen.
Die datenbank müsste dann so aussehen:
Sebastian;mail@world.net;http://www.google.de;Tolles Gästebuch!
Hans;hans@world.net;http://www.yahoo.de;Zweiter Eintrag...
Beim Auslesen müsstest Du dann jede Zeile extrahieren:
list($name, $email, $homepage, $eintrag) = explode(';', $line);
Und das HTML erst bei der Ausgabe zusammensetzen.
Beim Schreiben in die Datenbank sicherstellen, dass in den Userdaten keine Semikolen vorkommen:
$name = str_replace(';', ':', $name);
$email = ...
$homepage = ...
$eintrag = ...