Jag har knåpat ihop följande kod och det fungerar helt perfekt:
<?PHP
$sql = "SELECT postID FROM forum_posts WHERE post_topicID = '".$_GET["topicid"]."'";
$result = mysql_db_query("$database","$sql");
$posts = mysql_num_rows($result);
$pages = ceil($posts/$ppp); // Räknar ut antalet sidor
if(empty($_GET["pagenumber"])){
$currentpage=1;
}
else{
$currentpage = $_GET["pagenumber"];
}
if($currentpage>$pages){
$currentpage=1;
}
// Listar ut sidnummren
if(!($pages==1)){
echo "<a href=\"?page=forum&forumid=".$_GET["forumid"]."&topicid=".$_GET["topicid"]."&pagenumber=1\" class=\"link_normal\"><-</a> ";
for($i=1; $i<=$pages; $i++){
if($i==$currentpage){
echo "<span class=\"text\">[".$i."]</span> ";
}
else{
echo "<a href=\"?page=forum&forumid=".$_GET["forumid"]."&topicid=".$_GET["topicid"]."&pagenumber=".$i."\" class=\"link_normal\">".$i."</a> ";
}
}
echo "<a href=\"?page=forum&forumid=".$_GET["forumid"]."&topicid=".$_GET["topicid"]."&pagenumber=".$pages."\" class=\"link_normal\">-></a>";
}
// Räknar ut vart posterna ska börja räknas ut
if($currentpage==1){
$start=0;
}
else{
$start=$ppp*$currentpage-$ppp;
}
?>
Det jag nu undrar över (vilket har tagits upp tidigare men jag hittar inga poster som hjälper mig) hur jag ska göra för att bara visa 10 sidnummer åt gången... så att det inte blir för många sidnummer.
Några tips?
Antalet poster begränsar du genom SQL:
SELECT ... LIMIT start, max
där start är vilken rad du ska börja hämtningen, och max är antalet rader som ska hämtas med början ifrån start
Det är ju det där som jag kan, det jag frågade efter var hur jag ser till att det inte visas mer än 10 sidnummer så att det inte visas t.ex sida 1-45... det skulle dra ut min tabell ganska ordentligt...
Men då tar det ju slut vid 10 och så blir det inget mer. Jag vill att det ska bli så att den räknar ut följande:
- Om antalet sidor är > 10 visa endast 5 sidnummer till vänster om nuvarande sida och fem till höger
Om nuvarande sida vore 6 så skulle det su ut så här:
1 2 3 4 5 [6] 7 8 9 10 11
men om nuvarande sida vore 1 skulle det se ut så här:
[1] 2 3 4 5 6
Några fler idéer?
Lägg till detta precis innan // Listar ut sidnummren
// Bestämmer vilket första sidnummer som ska visas
$pages_start = $currentpage-5;
if($pages_start<1){$pages_start=1;}
// Bestämmer vilket sista sidnummer som ska visas
$pages_end = $currentpage+5;
if($pages_end>$pages){$pages_end=$pages;}