---
title: "Paging mot Microsoft Access Db"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/48826-paging-mot-microsoft-access-db"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Fredde Mannen"
published: "2002-07-27T12:51:53.000Z"
updated: "2002-08-01T17:21:47.000Z"
replies: 9
views: 459
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/48826-paging-mot-microsoft-access-db"
---

# Paging mot Microsoft Access Db

## #1 — Fredde Mannen, 2002-07-27T12:51Z

Är det någon här ute som kan guida en stackare på vägen mot att skapa en paging mot en Microsoft Access Db, jag kunde ju inte använda mig av en MySQL-baserad paging, eftersom Microsoft Access db inte stödjer LIMIT!!!

Plz. Hjälp!! :q

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

## #2 — SPiN, 2002-07-27T13:43Z

Jag skrev ihop följande, men har inte möjligheten att testa det... Säg gärna till om det fungerar, då lägger jag upp det under wF-Script. :)

```
<?php
define( "POSTS_PER_PAGE", 10 );

if( !isset( $_GET[ 'curPage' ] ) || $_GET[ 'curPage' ] == "" ) {
	$curPage = 1;
}
else {
	$curPage = ( int )$_GET[ 'curPage' ];
}

$adoConnection = new COM( "ADODB.Connection" );
$adoRecordset = new COM( "ADODB.Recordset" );

$adoConnection->open( "driver={Microsoft Access Driver (*.mdb); DBQ=C:\\Sökväg\\Till\\Databas.mdb" );

$adoRecordset->CursorLocation = 3;
$adoRecordset->CahcheSize = POSTS_PER_PAGE;
$adoRecordset->open( "SELECT name, email FROM tbl ORDER BY name ASC, email ASC", $adoConnection );
$adoRecordset->MoveFirst;
$adoRecordset->PageSize = POSTS_PER_PAGE;

$totalPages = $adoRecordset->PageCount;

$adoRecordset->AbsolutePage = $curPage;

echo "<html>\n<head>\n<title>Paging!</title>\n</head>\n<body>\n\n";

$counter = 0;

while( $adoRecordset->EOF != true AND counter < $adoRecordset->PageSize ) {
	echo $adoRecordset->Fields( "name" ) . " - " . $adoRecordset->Fields( "email" ) . "<br />\n";
	$counter++;
	
	$adoRecordset->MoveNext
}

echo "<br />\n";
echo "Current page: " . $curPage . "<br />\n";
echo "Of totally: " . $totalPages . "<br />\n";

if( $curPage > 1 )
	echo "<a href=\"" . $_SERVER[ 'PHP_SELF' ] . "?curPage=" . $curPage - 1 . "\">Föregående</a>";

echo "&nbsp; &nbsp; &nbsp; &nbsp;";

if( ( ( int ) $curPage ) != ( ( int ) $totalPages ) )
	echo "<a href=\"" . $_SERVER[ 'PHP_SELF' ] . "?curPage=" . $curPage + 1 . "\">Nästa</a>";

echo "\n<br />\n";
echo "</body>\n</html>";

?>
```

Du ser nog var du ska ändra i koden, så att det passar dig. ;)

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

## #3 — Fredde Mannen, 2002-07-28T13:23Z

Jepp det ska jag göra!!! :) tackar tackar!!!

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

## #4 — Fredde Mannen, 2002-07-28T14:06Z

Funkade inte, den gav felmeddelande:

Parse error: parse error, unexpected '}' in c:\\inetpub\\wwwroot\\nya\\default.php on line 38

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

## #5 — SPiN, 2002-07-28T15:17Z

Update:

```
<?php
define( "POSTS_PER_PAGE", 10 );

if( !isset( $_GET[ 'curPage' ] ) || $_GET[ 'curPage' ] == "" ) {
	$curPage = 1;
}
else {
	$curPage = ( int )$_GET[ 'curPage' ];
}

$adoConnection = new COM( "ADODB.Connection" );
$adoRecordset = new COM( "ADODB.Recordset" );

$adoConnection->open( "driver={Microsoft Access Driver (*.mdb)}; DBQ=C:\\Sökväg\\Till\\Databas.mdb" );

$adoRecordset->CursorLocation = 3;
$adoRecordset->CahcheSize = POSTS_PER_PAGE;
$adoRecordset->open( "SELECT name, email FROM tbl ORDER BY name ASC, email ASC", $adoConnection );
$adoRecordset->MoveFirst;
$adoRecordset->PageSize = POSTS_PER_PAGE;

$totalPages = $adoRecordset->PageCount;

$adoRecordset->AbsolutePage = $curPage;

echo "<html>\n<head>\n<title>Paging!</title>\n</head>\n<body>\n\n";

$counter = 0;

while( $adoRecordset->EOF != true && counter < $adoRecordset->PageSize ) {
	echo $adoRecordset->Fields( "name" ) . " - " . $adoRecordset->Fields( "email" ) . "<br />\n";
	$counter++;
	
	$adoRecordset->MoveNext;
}

echo "<br />\n";
echo "Current page: " . $curPage . "<br />\n";
echo "Of totally: " . $totalPages . "<br />\n";

if( $curPage > 1 )
	echo "<a href=\"" . $_SERVER[ 'PHP_SELF' ] . "?curPage=" . $curPage - 1 . "\">Föregående</a>";

echo "&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;";

if( ( ( int ) $curPage ) != ( ( int ) $totalPages ) )
	echo "<a href=\"" . $_SERVER[ 'PHP_SELF' ] . "?curPage=" . $curPage + 1 . "\">Nästa</a>";

echo "\n<br />\n";
echo "</body>\n</html>";

?>
```

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

## #6 — Fredde Mannen, 2002-07-30T11:28Z

errors!!!

Warning: Invoke() failed: Undantag inträffade. Source: Microsoft OLE DB Provider for ODBC Drivers Description: \[Microsoft\]\[Drivrutin för ODBC Microsoft Access\]Allmänt fel Det går inte att öppna registernyckeln 'Temporary (volatile) Jet DSN for process 0x644 Thread 0x640 DBC 0xb6cb4c Jet'. in c:\\inetpub\\wwwroot\\nya\\default.php on line 16

Warning: Unable to lookup CahcheSize: Okänt namn. in c:\\inetpub\\wwwroot\\nya\\default.php on line 19

Warning: Invoke() failed: Undantag inträffade. Source: ADODB.Recordset Description: Åtgärden är inte tillåten på ett objekt som refererar till en stängd eller en ogiltig anslutning. in c:\\inetpub\\wwwroot\\nya\\default.php on line 20

Warning: PropGet() failed: Undantag inträffade. Source: ADODB.Recordset Description: Åtgärden är inte tillåten när objektet är stängt. in c:\\inetpub\\wwwroot\\nya\\default.php on line 24

Warning: PropPut() failed: Undantag inträffade. Source: ADODB.Recordset Description: Åtgärden är inte tillåten när objektet är stängt. in c:\\inetpub\\wwwroot\\nya\\default.php on line 26

Warning: PropGet() failed: Undantag inträffade. Source: ADODB.Recordset Description: Åtgärden är inte tillåten när objektet är stängt. in c:\\inetpub\\wwwroot\\nya\\default.php on line 32

Notice: Use of undefined constant counter - assumed 'counter' in c:\\inetpub\\wwwroot\\nya\\default.php on line 32

och så nåra hundara till...  :stud

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

## #7 — SPiN, 2002-07-30T12:32Z

Jeeez... :o
Då testar vi igen:

```
<?php
define( "POSTS_PER_PAGE", 10 );

if( !isset( $_GET[ 'curPage' ] ) || $_GET[ 'curPage' ] == "" ) {
	$curPage = 1;
}
else {
	$curPage = ( int )$_GET[ 'curPage' ];
}

$adoConnection = new COM( "ADODB.Connection" );
$adoRecordset = new COM( "ADODB.Recordset" );

$adoConnection->open( "DSN=dinDSN" );

$adoRecordset->CursorLocation = 3;
$adoRecordset->CacheSize = POSTS_PER_PAGE;
$adoRecordset->open( "SELECT name, email FROM tbl ORDER BY name ASC, email ASC", $adoConnection, 3, 3 );
$adoRecordset->MoveFirst;
$adoRecordset->PageSize = POSTS_PER_PAGE;

$totalPages = $adoRecordset->PageCount;

$adoRecordset->AbsolutePage = $curPage;

echo "<html>\n<head>\n<title>Paging!</title>\n</head>\n<body>\n\n";

$counter = 0;

while( $adoRecordset->EOF != true && counter < $adoRecordset->PageSize ) {
	echo $adoRecordset->Fields( "name" ) . " - " . $adoRecordset->Fields( "email" ) . "<br />\n";
	$counter++;
	
	$adoRecordset->MoveNext;
}

echo "<br />\n";
echo "Current page: " . $curPage . "<br />\n";
echo "Of totally: " . $totalPages . "<br />\n";

if( $curPage > 1 )
	echo "<a href=\"" . $_SERVER[ 'PHP_SELF' ] . "?curPage=" . $curPage - 1 . "\">Föregående</a>";

echo "&nbsp; &nbsp; &nbsp; &nbsp;";

if( ( ( int ) $curPage ) != ( ( int ) $totalPages ) )
	echo "<a href=\"" . $_SERVER[ 'PHP_SELF' ] . "?curPage=" . $curPage + 1 . "\">Nästa</a>";

echo "\n<br />\n";
echo "</body>\n</html>";

?>
```

Till det här exemplet måste du dock ha en DSN för din databas.

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

## #8 — Fredde Mannen, 2002-07-30T14:06Z

Funkade en anningen bättre!!! =) Inga fel meddelanden ialla fall!!! tackar och bockar!!! :e

fick dock ordna till en grejj som inte funkade... det var nästa och föregående sida!!!

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

## #9 — SPiN, 2002-07-30T16:03Z

Vad var fel då? Fungerar det nu?

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

## #10 — Fredde Mannen, 2002-08-01T17:21Z

Felet och felet...

Felet, den skrev aldrig ut Nästa och föregående som länkar utan  koden:

```php
if( $curPage > 1 )
	echo "<a href=\"" . $_SERVER[ 'PHP_SELF' ] . "?curPage=" . $curPage - 1 . "\">Föregående</a>";

echo "       ";

if( ( ( int ) $curPage ) != ( ( int ) $totalPages ) )
	echo "<a href=\"" . $_SERVER[ 'PHP_SELF' ] . "?curPage=" . $curPage + 1 . "\">Nästa</a>";
```

 

resulterade bara i :

```
1">Nästa
```

 

Så jag ändrade det till:

```php
if( $curPage > 1 ) {

$page=$curPage - 1;
	echo "<a href=\"default.php?curPage=" . $page . "\">Föregående</a>";

}

echo "       ";
 
if( ( ( int ) $curPage ) != ( ( int ) $totalPages ) ) {
$page=$curPage + 1;
echo "<a href=\"default.php?curPage=" . $page . "\">Nästa</a>";

}
```

 

och vips så skrev den ut Nästa och Föregående....

Tack för all hjälp!!!  :birp  \*skål\*

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

---

Tråden på webben: https://www.webforum.nu/amne/php/48826-paging-mot-microsoft-access-db
