Geh von deiner aktuellen Seite aus. Nehmen wir mal an, wir befinden uns auf Seite 40 einer 100-seitigen Anzeige. Je nachdem wieviele Einer-Schritte du nach links und rechts machen willst, wird die erste Schleife programmiert .. die zweite Schleife überprüft, wieviel Seiten du in 10er Schritten anzeigen willst, usw. Das könnte zB so aussehen:
<?php
$page = 40;
$pagesgesamt = 100;
$ineinerschritten = 10;
$inzehnerschritten = 5;
for ($i=0; $i++; $i<= $ineinerschritten) {
// seiten rechts von aktueller seite:
if (($i+$page) <= $pagesgesamt) echo "<a href="index.php?page=" . ($i+$page) . "">" . ($i+$page) . "</a> ";
// seiten links von aktueller seite:
if (($page - $i) >= 1) echo "<a href="index.php?page=" . ($page-$i) . "">" . ($page+$i) . "</a> ";
}
?>
So ähnlich dann für die Zehnerschritte, nur dass du dort evtl 2 verschiedene for-Schleifen für die Seiten links und rechts brauchst, da man auch verschiedene Startwerte hat.