Hallo Jörg,
danke für deine Hilfe, hab es mal versucht einzubauen, aber es ist mir einfach eine Nummer zu hoch.
Mein Test sieht so aus:
define ('FTX_SHOW_PAGES', 1);
define ('FTX_PAGER_LINK_ITEM', '<a href="a-mitarbeiter3?page={{NUMMER}}"><button class="FTX_Pager">{{NUMMER}}</button></a>');
define ('FTX_PAGER_NOLINK_ITEM', '<button class="FTX_Pager">{{NUMMER}}</button>');
define ('FTX_PAGER_BETWEEN_ITEMS', "<br>\n");
define ('LIMIT', 1);
function mkButtons ($min, $max, $aktuellePage) {
## Erzeugt die eigentlichen Button, wird von
## Funktion Pager aufgerufen.
$ar=array();
for ($i=$min; $i<=$max; $i++) {
# Link oder nicht?
if ( $i != $aktuellePage ) {
$ar[] = str_replace('{{NUMMER}}' , $i, FTX_PAGER_LINK_ITEM );
} else {
$ar[] = str_replace('{{NUMMER}}' , $i, FTX_PAGER_NOLINK_ITEM );
}
}
return implode( FTX_PAGER_BETWEEN_ITEMS, $ar);
}
function mkPager ($anzahlPages, $aktuellePage) {
## Erzeugt den Pager
$firstPage=0;
$lastPage=$anzahlPages;
## erster Fall: SHOW_PAGES <= $anzahlPages
if ( FTX_SHOW_PAGES >= $anzahlPages ) {
return mkButtons( 1, $anzahlPages, $aktuellePage );
}
## Zweiter Fall, genug Seiten:
# Ermittellen der Mitte
# Wenn gerade Zahl, dann links der Mitte:
$min = $aktuellePage - floor(FTX_SHOW_PAGES / 2 ) + 1 - FTX_SHOW_PAGES % 2;
$max = $aktuellePage + floor(FTX_SHOW_PAGES / 2 );
# Es kann sein, der Ausschnitt muss gerückt werden, wenn die
# aktuelle Seite nahe am Anfang oder Ende ist:
while ( $min < 1 ) {
$min ++;
$max ++;
}
while ( $max > $anzahlPages ) {
$min --;
$max --;
}
return mkButtons( $min, $max, $aktuellePage );
}
$sql = "SELECT COUNT(*) AS `amount` FROM web_users";
$res = $mysqli->prepare($sql);
$res->execute();
$res->bind_result($amount);
$res->fetch();
$res->close();
$offset=0;
if (isset($_GET['page']) && $_GET['page'] > 1 ) {
$offset = (intval($_GET['page']) - 1 ) * LIMIT;
}
$pages = ceil($amount/LIMIT);
$sql = 'SELECT `user_id`, `user_nickname` FROM `web_users` LIMIT ' . LIMIT . ' OFFSET ' . $offset;
$res = $mysqli->prepare($sql);
$res->execute();
$res->bind_result($user_id, $user_nickname);
while ($res->fetch())
{
echo $user_nickname . "<br>";
}
$res->close();
if ($amount > LIMIT) {
echo "<div class=\"pagination\">";
for($i=1;$i<=$pages;$i++)
{
$active = "";
if ($_SERVER["QUERY_STRING"] == "page=".$i): $active = "active"; endif;
echo mkPager(10 , 2), "\n";
}
echo "</div>";
}
Die Aussage sieht so aus