Just nu i M3-nätverket
Jump to content

paging med flera databassökningar


Thomas Ytterström

Recommended Posts

Thomas Ytterström

Jag har ett lite problem med paging. Jag vill från en databas hämta antalet kategorier och för varje kategori visa artiklar som tillhör respektive kategori.

Ex Kategori1:

artikel1

artikel3

Kategori2:

artikel1

artikel2

etc.

Jag gör två sökningar mot databasen. Först alla kategorier och sedan för artiklar för varje kategori.

Jag vill att om kategorien och dess artiklar tillsammans överstiger 15 poster skapa en till sida.

Är det någon som har förslag på hur man kan lösa detta.

MVH Thomas

 

 

 

[inlägget ändrat 2003-04-17 12:03:18 av Thomas Ytterström]

[inlägget ändrat 2003-04-17 12:03:31 av Thomas Ytterström]

Link to comment
Share on other sites

Thomas Ytterström

Hmmm....

Problemet som jag ser det är att jag hämtar från två tabeller i databasen, det är där det kluriga ligger...

Pagingfunktionen måste då jämföra två recordset för att se om posterna överstiger "brytpunkten".

 

Link to comment
Share on other sites

Så här hade jag gjort:

 

sida = TRIM( Request( "sida" ) )

 

IF sida = "" THEN sida = 1

 

sql = "SELECT kategori, artikel FROM tabell GROUP BY kategori, artikel"

 

RecSet.Open sql, Connect, AdOpenForwardOnly, AdLockReadOnly

 

RecSet.PageSize = 15

RecSet.AbsolutePage = sida

 

WHILE NOT RecSet.EOF AND rowCount < RecSet.PageSize

 

rowCount = rowCount + 1

kategori=RecSet("kategori")

artikel=RecSet("artikel")

 

If kategori <> last_kategori Then

Response.Write kategori

kategori_antal = kategori_antal + 1

End if

 

Response.Write artikel

 

last_kategori = kategori

 

RecSet.Movenext

WEND

 

IF RecSet.PageCount > 1 THEN

Response.Write "<b>Gå till sida:&nbsp;</b>"

FOR a = 1 to RecSet.PageCount

IF a <> cINT( sida ) THEN

Response.Write "<a href='sidan.asp?sida="& a &"'>"& a &"</a>&nbsp;"

ELSE

Response.Write a & "&nbsp;"

END IF

NEXT

END IF

 

RecSet.Close

Connect.Close

Set RecSet = nothing

Set Connect = nothing

 

 

Link to comment
Share on other sites

Missade att du hämtade poster från två tabeller så du får ändra sql frågan. Nu vet jag inte riktigt hur dina tabeller ser ut men du borde ju ha något som kopplar ihop rätt artikel med rätt kategori, exempelvis ett id nummer. Då blir sql frågan så här istället

sql = "SELECT tabell.kategori, tabell2.artikel FROM tabell, tabell2 WHERE tabell.kID = tabell2.kID"

 

Link to comment
Share on other sites

Thomas Ytterström

Detta verkar vara precis vad jag är ute efter. dock får jag ett fel gällande rad RecSet.AbsolutePage = sida.

ADODB.Recordset (0x800A0CB3)

Current Recordset does not support bookmarks. This may be a limitation of the provider or of the selected cursortype

 

Vad kan detta bero på?

 

Link to comment
Share on other sites

Mitt fel, byt ut

 

RecSet.Open sql, Connect, AdOpenForwardOnly, AdLockReadOnly

 

mot

 

RecSet.Open sql, Connect, AdOpenStatic, AdLockReadOnly

 

så skall det nog fungera!

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...