Forum > Övriga serverspråk > PHP
Tjena!
Letar efter en bra Paging klass och tänkte att jag kunde ta och skriva en tråd här i hopp om lite mer aktivitet på köpet. Ja, ni får gärna tipsa om "Paging" klasser ni använder eller använt förut.
Jag har faktiskt ingen specifik klass som jag använder mig av, utan jag använder oftast koden nedan. Det den gör är att visa nuvarande sida + de X kommande och föregående sidorna.
Den här biten hämtar upp alla trådar och definierar alla viktiga variabler:
<?php
$rowsPerPage = 25;
$currentPage = 1;
$numRows = 0;
if(isset($_GET['page'])) { $currentPage = mysql_escape_string($_GET['page']); }
if(!is_numeric($currentPage)) { $currentPage = 1; }
$numRows = $sql->value("SELECT COUNT(*) FROM tblposts"); //How many posts are there?
$maxPage = ceil($numRows / $rowsPerPage); //How many pages are there to print?
if($currentPage>$maxPage){$currentPage = 1;}
$offset = ($currentPage - 1) * $rowsPerPage; //Offset
$postData = $sql->query("SELECT * tblposts LIMIT $offset, $rowsPerPage");
?>
Nedanstående kod skriver ut själva pagingen:
<?php
$pageDiff = 10;
$startPage = (($currentPage-$pageDiff<=1) ? 1:($currentPage-$pageDiff));
$endPage = (($currentPage+$pageDiff>=$maxPage) ? $maxPage:($currentPage+$pageDiff));
echo "<div class=\"paging\"><span class=\"header\">Navigering:</span> ";
if($currentPage > 1) {
echo " <a href=\"/$categoryPath-forum/$threadNamePath-$threadId/1/\" title=\"Första sidan\">«</a>";
echo " <a href=\"/$categoryPath-forum/$threadNamePath-$threadId/".($currentPage-1)."/\">Föregående</a>";
} else {
echo " <a href=\"#none\">«</a>";
echo " <a href=\"#none\">Föregående</a>";
}
for($page = ($startPage); $page <= $endPage; $page++) {
if ($page == $currentPage){
echo " <span>$page</span> ";
} else {
echo " <a href=\"/$categoryPath-forum/$threadNamePath-$threadId/$page/\">$page</a> ";
}
}
if($currentPage < $maxPage) {
echo " <a href=\"/$categoryPath-forum/$threadNamePath-$threadId/".($currentPage+1)."/\">Nästa</a>";
echo " <a href=\"/$categoryPath-forum/$threadNamePath-$threadId/$maxPage/\" title=\"Sista sidan\">»</a>";
} else {
echo " <a href=\"#none\" class=\"next disabled\">Nästa</a>";
echo " <a href=\"#none\" class=\"last disabled\">»</a>";
}
echo "</div>";
?>
Jag redigerade min kod direkt här i tråden, så det finns en risk för felstavning.