Jörg Reinholz: MySQL "Blätterfunktion"

Beitrag lesen

Moin!

Das ist eigentlich alles triviales Zeug. Die Idee zum Programm beruht auf der Mathematik aus der 3. Klasse "Textaufgabe" oder so.

<?php
define ('LIMIT', 20);
if ( isset($_GET['seite']) && $_GET['seite'] > 1 ) {
    $offset= ( intval($_GET['seite') - 1 ) * LIMIT;
}
$offset=0;

$sql='SELECT `id`, `titel` FROM `artikel` LIMIT ' . LIMIT . ' OFFSET ' . $offset;
# verbindung
# abfrage
foreach ... {

   echo '<a href="show_artikel.php?id=',$row['id'],'">', htmlspecualchars($row['titel']), '</a></br>'; 
}
if ($offset) {
  echo '<a href="artikel_listen?seite=', $_GET['seite']-1 , '">Vorherige Seite</a> ';
}
echo '<a href="artikel_listen?seite=', $_GET['seite']+1 , '">Nächste Seite</a>';
?>

Um die maximale Anzahl möglicher Seiten zu ermitteln mache eine SQL-Abfrage ohne Limits:

$sql='SELECT COUNT(`id`) AS `anzArtikel` FROM `artikel`';
...
$maxSeiten=floor($row['anzArtikel']/LIMIT);
if ($maxSeiten < $row['anzArtikel']) { $maxSeiten++; }

Das ist jetzt nicht getestet - finde Typos bitte indem Du Dir die Fehler ausgeben lässt und versuchst, diese zu verstehen.

Jörg Reinholz