---
title: "paging vidareutveckling"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/48230-paging-vidareutveckling"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "LAMP"
published: "2002-07-19T13:17:35.000Z"
updated: "2002-07-20T13:50:19.000Z"
replies: 4
views: 300
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/48230-paging-vidareutveckling"
---

# paging vidareutveckling

## #1 — LAMP, 2002-07-19T13:17Z

Hej, jag har en paging som ser ut enligt nedan. Problemet är att det blir en hel massa sidor som listas i navigeringen. Kan man göra så att den bara visar 10 sidor i taget, sedan när man är på t ex sida 10 så listar den de 10 nästkommande sidorna?

```php
// *** inkludera ett connectionobjekt ***
   require("connection.php");

   if(!$PageCounter)
   $PageCounter = 0;
      
//  *** sätt antal poster per sida till önskat värde ***
   $intPageSize = 15;
// *** räkna ut aktuell sida ***
   $PageNow = $Page * $intPageSize;
// *** räkna antal poster med funktionen count() ***
   $strSQL = mysql_query("SELECT COUNT(*) AS intTotal FROM Forums_topics WHERE intForumId = $forumid");

   if(mysql_numrows($strSQL) > 0)

// *** definiera och tilldela intTotalRecords antalet poster totalt
   $intTotalRecords = mysql_result($strSQL,0,"intTotal");
// *** beräkna hur många sidor det blir ***
   $HowManyPages = $intTotalRecords / $intPageSize;
// *** avrunda antalet sidor ***
   $HowManyPages = Ceil($HowManyPages);
// *** tilldela whichpage ett värde ***
    $WichPage = $Page + 1;
		
// *** Gör en select och loopa ut alla trådar ***
   $strSQL = "SELECT intThreadId, intForumId, intMemberId, dteDate, strSubject, intThreadMessId, intLocked, intFlyttad  
      FROM Forums_topics WHERE intForumId = $forumid ORDER BY dteDate ASC LIMIT $PageNow,$intPageSize";

   $Result = mysql_query( $strSQL )
      or die( mysql_error() );

   if( mysql_num_rows( $Result ) < 1 ) 

   {
      print <p><b>Det fanns inga inlägg i detta forum</b></p>\n\n");      

   }

   else {
    
   while ($data = mysql_fetch_array($Result)) {

// *** definiera variabler som ska användas ***
   $threadMessId = (int) $data["intThreadMessId"];
   $memberId = (int) $data["intMemberId"];
   $subject = $data["strSubject"];
   $locked = (int) $data["intLocked"];
   $moved = (int) $data["intFlyttad"];
   $dteDate = $data["dteDate"];

   print ("<a href=\"viewmess.php?threadId=$threadMessId\">$subject</a>\n\n");

// *** Hämta ut vem som startade tråden ***
   $sql = "SELECT intMemberId, Username, AnvId 
   FROM Forums_topics 
   INNER JOIN Profil
   ON intMemberId = AnvId
   WHERE intMemberId = $memberId ";

   $Resultat = mysql_query( $sql )
      or die( mysql_error() );

   if( mysql_num_rows( $Resultat ) < 1 ) 

{

   print <p><b>Hittade ingen trådskapare</b></p>\n\n");      
}

   else {

// *** presenterar en massa dynga här ***

// *** presentera aktuell sida, hur många sidor totalt och antal poster totalt ***
   if($Page >= 0) {

   print ("Sidor totalt: $HowManyPages &nbsp;&nbsp;&nbsp;");

// *** skriv ut föregåendelänk ***
   if($Page == 0) {

   print ("&nbsp;");  
}
   else {

   $prevPage = $Page - 1;
   print (" <a href=\"threadlist.php?forumid=$forumid&Page=$prevPage\">Föregående</a> ");
}

// *** loopa ut sidnummer och skriv ut länk på alla utom på aktuell sida ***
	
   for($i=1; $i < $HowManyPages + 1; $i++) {
      $intCounter = $i - 1;
	    
   if($WichPage == $i)
	       
      print ("<b>[$i]</b>");
	    
   else
	       
      print (" <a href=\"threadlist.php?forumid=$forumid&Page=$intCounter\">$i</a> ");

	}

// *** Skriv ut nästalänk ***
   if($Page == ($HowManyPages - 1)) {

   print ("&nbsp;");
}

   else {

   $NextPage = $Page + 1;
   print (" <a href=\"threadlist.php?forumid=$forumid&Page=$NextPage\">Nästa</a> ");
}
}

mysql_close ();

?>
```

Permalänk: https://www.webforum.nu/p/48230

## #2 — SPiN, 2002-07-19T17:28Z

Testa att byta ut följande:

```
for($i=1; $i < $HowManyPages + 1; $i++) {
     $intCounter = $i - 1;

     if($WichPage == $i)
          print ("<b>[$i]</b>");
     else
          print (" <a href=\"threadlist.php?forumid=$forumid&Page=$intCounter\">$i</a> ");
}
```

Mot:

```
for($i=1; $i < ( $HowManyPages + 1 ) || $i < 11; $i++) {
     $intCounter = $i - 1;

     if($WichPage == $i)
          print ("<b>[$i]</b>");
     else
          print (" <a href=\"threadlist.php?forumid=$forumid&Page=$intCounter\">$i</a> ");
}
```

Med reservering för att jag har förstått din kod fel. :)

Permalänk: https://www.webforum.nu/p/724219

## #3 — LAMP, 2002-07-19T18:12Z

Men vad händer då om där är t ex 50 sidor. Då fungerar det väl bara upp till 20, eller?

Permalänk: https://www.webforum.nu/p/724258

## #4 — SPiN, 2002-07-19T19:02Z

Ah, jag missförstod din fråga. :r
Jag trodde att du bara ville visa länkar från sida 1 till sida 10. Jag orkar tyvärr inte tänka så ingående just nu, jag har precis kommit hem från jobbet och öppnat en Jahki - så jag sitter mest och njuter. ;)

Permalänk: https://www.webforum.nu/p/724285

## #5 — LAMP, 2002-07-20T13:50Z

Hittade lite exempel här hur man kan gå tillväga. Ska nu bygga om och förbättra dessa så de passar mig. Om någon har samma beskymmer finns exempel och artiklar om ämnet här:

<http://www.devarticles.com/content.php?articleId=110&page=1>
<http://codewalkers.com/seecode/42.html>

Permalänk: https://www.webforum.nu/p/724508

---

Tråden på webben: https://www.webforum.nu/amne/php/48230-paging-vidareutveckling
