---
title: "paging för mysql"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/124786-paging-för-mysql"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "WebbisNet"
published: "2005-03-21T01:04:40.000Z"
updated: "2005-03-30T13:46:53.000Z"
replies: 21
views: 584
page: 1
pages: 2
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/asp/124786-paging-för-mysql"
---

# paging för mysql

_Sida 1 av 2._

## #1 — WebbisNet, 2005-03-21T01:04Z

till att börja med så vill jag säga att jag har sökt här utan att hitta en lösning på mitt problem.

min paging nu när jag migrerar från access till mysql ser ut så här

```
Set objRs = Server.Createobject("Adodb.Recordset")
strSQL = "SELECT mailRead, username, mailDate, mailTime, sender, Headline, message, mailID,Reciever "&_
"FROM tblUsers INNER JOIN tblUsers_imail ON tblUsers.userID = tblUsers_imail.sender "&_
"WHERE Reciever=" & Session("userID") &" order by mailID desc"
strConString = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=databasadress;PORT=3306;DATABASE=användarnamn;USER=användarnamn;PASSWORD=lösenord;OPTION=3;"

'================================================================================================
function getPreviousLink( intp )
  if intp > 1 then
    getPreviousLink = " <a class=""menu"" href='?p=" & intp - 1 & "'> &laquo; Föregående</a> "
    else
        If intp < 2 then
              response.write "&nbsp;"
        end if  
  end if
end function
'================================================================================================

'================================================================================================
function getNextLink( intPageId, intPageCount )
  if cint( intpageId ) <> cint( intPageCount ) then
    getNextLink = " <a class=""menu"" href='?p=" & intp + 1 & "'> Nästa &raquo;</a> "
        else
    getNextLink = " Nästa »"
  end if
end function
'================================================================================================

'================================================================================================
function getLastLink( intPageCount )
  getLastLink = " <a class=""menu"" href='?p=" & intPageCount & "'>Sista sidan</a> "
end function
'================================================================================================

'================================================================================================
function getPageInfo( intp, intPageCount )
  getPageInfo = "<a class=""menu""> Sida: " & intp & " </a>"
end function
'================================================================================================

intp = request.querystring( "p" )
if intp = "" then intp = 1

with objRs
	.cursorlocation = 3
  	.open strSQL, strConString
  	.pagesize = 20
end with

If objRs.EOF Then
	Response.Write "Din inbox är tom<p>"
Else
	intPages = cint(objRs.pagecount)
	intCurrentPost = 0
	objRs.absolutepage = intp
	
	
	Do while not objRs.eof and intCurrentPost < objRs.pagesize
nummer = nummer + 1
If nummer Mod 2 = 0 Then
color = "#FFFFFF" 
Else
color = "#EEEEEE"
end if
```

först och främst så får jag felmeddelande när jag har order by mailID och tar jag bort den så klagar den på raden .open strSQL, strConString

är det nåt speciellt för mysql i den här pagingen?

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

## #2 — @nders, 2005-03-21T04:03Z

Använd LIMIT för paging.

<http://www.webforum.nu/showthread.php?s=&forumid=22&threadid=62531>

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

## #3 — WebbisNet, 2005-03-21T12:41Z

> **@nders skrev:**
>
> Använd LIMIT för paging.
> 
> <http://www.webforum.nu/showthread.php?s=&forumid=22&threadid=62531>

var i min kod ska jag lägga in limit, vet  bara var jag ska ha den när jag byter ut top, vilka ställen ska man ändra på?

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

## #4 — WebbisNet, 2005-03-24T22:06Z

Ingen som har nåt bra förslag?

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

## #5 — WebbisNet, 2005-03-26T16:10Z

har även testat med denna kopplingssträng

```
strConString=("DRIVER={MySQL ODBC 3.51 Driver};SERVER=databasadress;PORT=3306;DATABASE=anvnamn; USER=anvnamn;PASSWORD=lösenord;OPTION=3;" )
```

 och jag får med den 
Microsoft OLE DB Provider for ODBC Drivers error '80004005' 
\[Microsoft\]\[ODBC Driver Manager\] Data source name not found and no default driver specified

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

## #6 — J.N., 2005-03-29T14:36Z

HEJ!

För mig verkar det som att du har två problem, eller tror du LIMIT/TOP ger ett "Data source name"-fel?

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

## #7 — WebbisNet, 2005-03-29T16:22Z

nån som kan se vad som är fel här
"WHERE Reciever=" & Session("userID") &" order by mailID LIMIT " & (page-0) \* pagesize & "," & pageSize

jag får
Microsoft OLE DB Provider for ODBC Drivers error '80040e14' 
\[MySQL\]\[ODBC 3.51 Driver\]\[mysqld-4.0.23a-log\]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'order by mailID LIMIT 20,20' at line 1 

/inside/mail/meddelanden.asp, line 71

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

## #8 — LarsG, 2005-03-29T17:04Z

skriv ut hela sql-satsen.

Jag skuller gissa att det står 

```
where reciever = order by ....
```

dvs Session("userID") är odefinierat.

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

## #9 — WebbisNet, 2005-03-29T17:34Z

> **LarsG skrev:**
>
> skriv ut hela sql-satsen.
> 
> Jag skuller gissa att det står 
> 
>
>
> ```
> where reciever = order by ....
> ```
>
> 
> 
> dvs Session("userID") är odefinierat.

ändrade om och la userID i en varibel

nu får jag
ADODB.Field error '80020009' 

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record. 

/inside/mail/meddelanden.asp, line 0 

jag ska ha en himla massa poster i databasen

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

## #10 — @nders, 2005-03-29T17:59Z

> **WebbisNet skrev:**
>
> jag ska ha en himla massa poster i databasen

Fler än 20 på aktuell användare?

Hur ser alltså den färdiga SQL-frågan ut?

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

## #11 — WebbisNet, 2005-03-29T18:04Z

> **@nders skrev:**
>
> > **WebbisNet skrev:**
> >
> > jag ska ha en himla massa poster i databasen
>
> Fler än 20 på aktuell användare?
> 
> Hur ser alltså den färdiga SQL-frågan ut?

på mitt konto ska jag ha 35 sidor enligt pagingen

När jag skriver ut satsen (jag har id 1)
SELECT mailRead, username, mailDateTime, sender, Headline, message, mailID,Reciever FROM tblUsers INNER JOIN tblUsers_imail ON tblUsers.userID = tblUsers_imail.sender WHERE Reciever=1 order by mailID LIMIT 20,20

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

## #12 — @nders, 2005-03-29T18:11Z

Du har alltså c:a 700 meddelanden adresserade till dig? Hur ser koden ut när du tar ut antalet sidor i pagingen?

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

## #13 — WebbisNet, 2005-03-29T18:20Z

```
<%Dim sql, pages, page, pageSize, myGetrow, i
uid=Session("userID")
page = Request.QueryString("n")
pageSize = 20
If not isnumeric(page &"") then page = 1 else page = cint(page)
pages = "SELECT COUNT(*) FROM tblUsers_imail"
set connection = Server.Createobject("adodb.connection")
connection.Open "DRIVER={MySQL ODBC 3.51 Driver};DATABASE=XXXXXX;UID=XXXXXX;PWD=XXXXXX;SERVER=XXXXXXX;"
Set ObjRs = connection.execute(pages) : pages = cint((ObjRs(0)-1)/pageSize + 1)
sql = "SELECT mailRead, username, mailDateTime, sender, Headline, message, mailID,Reciever "&_
"FROM tblUsers INNER JOIN tblUsers_imail ON tblUsers.userID = tblUsers_imail.sender "&_
"WHERE Reciever=" & uid &" order by mailID LIMIT " & (page-0) * pagesize & "," & pageSize
'response.write sql
'response.end
Set ObjRs = connection.execute(sql)
If not ObjRs.eof then myGetrow = ObjRs.getrows()

If isarray(myGetrow) then
    For i = 0 to ubound(myGetrow,2)
    

	'------------------------------------------------'
	Dim  mailRead, sender, username, mailDateTime, mailID, Headline
	mailRead = myGetrow(0,i)
	username = myGetrow(1,i)
	mailDateTime = myGetrow(2,i)
	sender = myGetrow(3,i)
	Headline = myGetrow(4,i)
	mailID = myGetrow(5,i)
	'------------------------------------------------'
%>
	
Här listas avsändare, datum, rubrik

<%
If page > 1 then
    Response.write "<a href=""?n=" & page - 1 & """>Bakåt</a> "
End if

If page < pages then
    Response.write " <a href=""?n=" & page + 1 & """>Framåt</a>"
End if

Response.write "<br>Visar sida <b>"& page &"</b> av <b>"& pages &"</b>"

ObjRs.Close : set ObjRs = nothing
connection.close : set connection = nothing
%>
```

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

## #14 — @nders, 2005-03-29T18:21Z

Antalet sidor beräknar du ju på totala antalet poster, inte antalet som är adresserade till dig.

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

## #15 — WebbisNet, 2005-03-29T18:28Z

> **@nders skrev:**
>
> Du har alltså c:a 700 meddelanden adresserade till dig? Hur ser koden ut när du tar ut antalet sidor i pagingen?

När jag gör en räkning med
SELECT Count(Reciever) as Antal
FROM tblUsers_imail where Reciever=1
så ska jag ha 251 poster till mig

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

## #16 — @nders, 2005-03-29T18:31Z

Kör exakt samma villkor som i SQL-frågan som hämtar posterna, dvs inkludera join-villkoret också.

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

## #17 — WebbisNet, 2005-03-29T18:35Z

då får jag ut 208 rader med alla pm som har id 1 som mottagare, dvs till mig

SELECT mailRead, username, mailDateTime, sender, Headline, message, mailID,Reciever 
FROM tblUsers INNER JOIN tblUsers_imail ON tblUsers.userID = tblUsers_imail.sender 
WHERE Reciever=1 order by mailID

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

## #18 — WebbisNet, 2005-03-30T12:19Z

Några fler förslag?

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

## #19 — J.N., 2005-03-30T12:27Z

HEJ!

Ja, jag vet inte var du är, men denna rad ser konstig ut:
Set ObjRs = connection.execute(pages) : pages = cint((ObjRs(0)-1)/pageSize + 1)

Hur kan ObjRS(0) innehålla något INNAN frågan körs?

Å andra sidan verkar det fungera eftersom du kan skriva ut sql:en.

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

## #20 — WebbisNet, 2005-03-30T13:17Z

jag löste det för länge sen, glömde bara skriva det

Det var fel ordning på nuffrorna här
mailRead = myGetrow(0,i)
	username = myGetrow(1,i)
	mailDateTime = myGetrow(2,i)
	sender = myGetrow(3,i)
	Headline = myGetrow(4,i)
	mailID = myGetrow(5,i)

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/124786-paging-för-mysql  
Nästa sida: https://www.webforum.nu/amne/asp/124786-paging-för-mysql/page2.md
