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