Ich möchte folgendes Pagination-Layout benutzen:
<nav>
<ul class="pagination">
<li><a href="#"><span aria-hidden="true">«</span><span class="sr-only">Previous</span></a></li>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li><a href="#"><span aria-hidden="true">»</span><span class="sr-only">Next</span></a></li>
</ul>
</nav>
Mein Ansatz (mysql.php):
function db_make_sites ($page ,$where ,$limit ,$link ,$table, $anzahl = NULL) {
$hvmax = 4; // hinten und vorne links nach page
$maxpage = ''; if ( empty ($MPL) ) { $MPL = ''; }
if ( is_null ( $anzahl ) ) {
$resultID = db_query ( "SELECT COUNT(*) FROM prefix_".$table." ".$where );
$total = db_result($resultID,0);
} else {
$total = $anzahl;
}
if ($limit < $total) {
$maxpage = $total / $limit;
if (is_double($maxpage)) {
$maxpage = ceil($maxpage);
}
$ibegin = $page - $hvmax;
$iende = $page + $hvmax ;
$vgl1 = $iende + $ibegin;
$vgl2 = ($hvmax * 2) + 1;
if ( $vgl1 <= $vgl2 ) {
$iende = $vgl2;
}
$vgl3 = $maxpage - ($vgl2 -1);
if ($vgl3 < $ibegin ) {
$ibegin = $vgl3;
}
if ($ibegin < 1) {
$ibegin = 1;
}
if ($iende > $maxpage) {
$iende = $maxpage;
}
$vMPL = '';
if ($ibegin > 1) {
$vMPL = '<a href="'.$link.'-p1">Erste Seite</a>';
}
$MPL = $vMPL.'';
for($i=$ibegin; $i <= $iende; $i++) {
if($i == $page) {
$MPL .= $i;
} else {
$MPL .= '<a href="'.$link.'-p'.$i.'">'.$i.'</a>';
}
if ($i != $iende) {
$MPL .= '';#Trennzeichen zwischen den Seiten
}
}
$MPL .= '<a href="'.$link.'-p'.$i.'">'.$i.'</a>';
if ($iende < $maxpage) {
$MPL .= '<a href="'.$link.'-p'.$maxpage.'">Letzte Seite</a>';
}
}
return '<nav><ul class="pagination"><li>'.$MPL.'</li></ul></nav>';
}
und so siehts aus:
Bin für jede Hilfe dankbar!
verwendete ilch Version: 1.1 P
betroffene Homepage: externer Link


