[Tutorial] Vorwärts und Rückwärts blätternSie befinden sich: Home > Webmaster News
Daten aus MySQL anzeigen und vorwärts / rückwärts blättern
Wenn Sie eine Datensammlung auf einer Seite ausgeben möchten, und dabei nur immer z.B. 30 Zeilen angezeigt werden sollen, und der Besucher dann weiterblättern soll, so ist dies keine triviale Aufgabe. Wir wollen an dieser Stelle keinen kompletten Code veröffentlichen, sondern nur das Prinzip veranschaulichen.
<?php
$sql = "SELECT feld1, feld2 FROM tabelle ORDER BY feld2 WHERE feld2 != '' LIMIT 0, 30";
?>
Hiermit können wir in einer While-Schleife 30 Tabellenzeilen (Zeilen 0 - 29) ausgeben lassen. Unter diese Ausgabe setzen wir Textlinks oder Links mit Pfeilgrafiken, mit denen der benutzer blättern kann. Wenn er Vorwärts blättern möchte, dann müsste unsere PHP-Datei neu aufgerufen werden, der SQL-Befehl müsste dann aber sein:
<?php
$sql = "SELECT feld1, feld2 FROM tabelle ORDER BY feld2 WHERE feld2 != '' LIMIT 30, 30";
?>
Das muss natürlich allgemein geschrieben sein, z.B. so:
<?php
$sql = "SELECT feld1, feld2 FROM tabelle ORDER BY feld2 WHERE feld2 != '' LIMIT $erster, 30";
?>
Beim allerersten Durchlauf müsste $erster = 0 sein und beim zweiten Durchlauf müsste $erster = 30 sein.
Der Link, auf den der Besucher nach der Anzeige der ersten 30 Zeilen klicken muss, um die nächsten 30 Zeilen zu sehen müsste also in etwa so aussehen: script.php?erster=30, und dieser Parameter müsste im Script ausgelesen, geprüft, und dann in das SQL-Statement eingebaut werden:
<?php
$erster = $_GET['erster'];
// Will uns jemand etwas böses einschmuggeln?
if(!is_numeric($erster)) $erster = 0;
?>
Wenn wir nun die Datensätze 30 bis 59 ausgeben, so muss der Link für das Vorwärtsblättern so aussehen: script.php?erster=60 Diese neue Zahl ist also immer genau 30 größer als die vorhandene Zahl $erster.
<?php
$vorwaerts = $erster + 30;
?>
Hier prüfen wir, ob $vorwärts einen Wert annimmt, der größer ist als die Anzahl der vorhandenen Tabellenzeilen. In diesem Fall geben wir den kompletten Link zum Vorwärtsblättern nicht aus.
<?php
$sql = "SELECT count(*) AS count FROM tabelle ORDER BY feld2 WHERE feld2 != ''";
?>
Analog dazu können wir einen Link für das Rückwärtsblättern berechnen:
<?php
$zurueck = $erster - 30;
?>
Hier ist zu prüfen, ob $zurueck kleiner als 0 wird. In diesem Fall wird der Link zum Zurückblättern einfach nicht ausgegeben.
(Autor: Wolfgang), Eingetragen am 20.06.2008
Schreib ein Kommentar
|