---
title: "Access databas, TOP - paging"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/148087-access-databas-top-paging"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "UrMe"
published: "2006-06-15T08:21:07.000Z"
updated: "2006-09-06T13:04:39.000Z"
replies: 3
views: 373
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/148087-access-databas-top-paging"
---

# Access databas, TOP - paging

## #1 — UrMe, 2006-06-15T08:21Z

Har slitit mitt hår ett tag nu.. vill göra ett enkelt paging script med en \<\<Prev\|Next\>\> knapp. Den ska visa 9 per sida och helst visa hur många sida och vilken sida man är på.

t.ex

7/49
\<\<Prev\|Next\>\>

Detta hade ju inte varit några problem om man kört MySQL, men nu används Access.

Så här långt har jag kommit:

```
$filmer =  "select TOP 9 * from tblTitles ORDER BY intID DESC";
```

:)

Men eftersom det inte finns någon limit funktion i Access har jag kört fast totalt.

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

## #2 — UrMe, 2006-06-15T08:34Z

Delar med mig av lite mer kod:

Jag hämtar alla träffar och lägger dem i en array:

```
$rowfilmer = $DB->getArray($filmer);
```

Sedan loopar jag bara ut arrayen med en foreach-sats

```
foreach ($rowfilmer as $key => $value) {
	echo $rowfilmer[$key]["nvcLocalTitle"]."<br />";
}
```

Kan man göra någonting i loopen? Fast är ju inte så kul om man måste hämta in alla filmer varje gång och sedan bara visa 9 av dem åt gången.

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

## #3 — UrMe, 2006-06-15T11:55Z

okej jag har löst det iallafall.

Loopar igenom hela databasen och bygger upp en ny array som håller reda på idnumren.

```
$movieindex = "select * from tblTitles ORDER BY intID DESC";
$rowmovieindex = $DB->getArray($movieindex);
$pagearray = array();
$pagenr = 1;
$movies_per_page = 9;
$movie_counter = 1;
$x = count($rowmovieindex) - 1;
$lastid = $rowmovieindex[$x]["intID"];

foreach ($rowmovieindex as $key => $value) {

	if($movie_counter == 1)
	{
		$pagearray[$pagenr]["firstmovie"] = $rowmovieindex[$key]["intID"];
	}
	
	if($movie_counter == $movies_per_page OR $rowmovieindex[$key]["intID"] == $lastid)
	{
		$pagearray[$pagenr]["lastmovie"] = $rowmovieindex[$key]["intID"];
		$pagenr++;
		$movie_counter = 1;
	}
	else
	{
		$movie_counter++;
	}
}

if(!IsSet($_GET["page"]))
{
	$cur_page = 1;
}
else
{
	$cur_page = $_GET["page"];
}

$countpages = count($pagearray);

if($cur_page >= $countpages)
{
	$nextpage = $countpages;
}
else
{
	$nextpage = $cur_page + 1;
}

if($cur_page <= 1)
{
	$prevpage = 1;
}
else
{
	$prevpage = $cur_page - 1;
}

$filmer =  "select TOP 9 * from tblTitles WHERE intID between ".$pagearray[$cur_page]["firstmovie"]." and ".$pagearray[$cur_page]["lastmovie"]." ORDER BY intID DESC";
```

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

## #4 — UrMe, 2006-09-06T13:04Z

Ett problem med detta är ju att det bara går att sortera på IDnr.. om jag sorterar t.ex på Namn så blir ju allt fel.

Det måste ju finnas något enklare sätt för att få paging med php+access?

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

---

Tråden på webben: https://www.webforum.nu/amne/php/148087-access-databas-top-paging
