Avatar billede stkol Nybegynder
24. juni 2006 - 00:21 Der er 3 kommentarer og
1 løsning

Problem med Paging hvor ID skal med fra anden side!

Hejsa

Jeg har nedenstående kode, som jeg har lidt af et problem med at få til at virke optimal! Jeg vil gerne have at man fra en nav side kan kalde det dokument som indeholder nedenstående kode hvor man henter indhold ud fra et ID som sendes fra nav siden! samtidig vil jeg gerne have at man kan bladre til næste eller forrige "side" som indeholder den record som kommer før eller efter i ID rækken! men hvis jeg sætter WHERE id = Request.Querystring("catid") ind i SQL sætningen får jeg ikke mulighed for at gå frem og tilbage i "siderne" og jeg mangler også noget logik i hvilken ID der kommer før og efter den record som jeg har valgt i nav menuen?? Er der en der kan hjælpe mig med at tilrette nedenstående kode??

På forhånd tak

/Stig :-)



<%

'####### Productscount ############
'## Create db objects and SQL   
set ProdcountConn = Server.CreateObject("ADODB.Connection")
ProdcountConn.CursorLocation = 3
ProdcountConn.Open Application("ConnectString")
Set prodcountrs = Server.CreateObject("ADODB.Recordset")

ProdcountSql = "SELECT count(*) as amountcount FROM house WHERE provehusaktiv='yes';"

Set prodcountrs = ProdcountConn.Execute(ProdcountSql)

%>


<%
    intPage = Request("page")
    If isNumeric(intPage) = False Or intPage < 1 Then
      intPage = 1
    End If

    set dbhouseConn = Server.CreateObject("ADODB.Connection")
    dbhouseConn.CursorLocation = 3
    dbhouseConn.Open Application("ConnectString")
    Set rshouse = Server.CreateObject("ADODB.Recordset")

    sqlhouse = "SELECT * FROM house"
   
    Set rshouse = dbhouseConn.Execute(sqlhouse)
   
    If Not (rshouse.BOF Or rshouse.EOF) Then
    rshouse.PageSize = 1
    rshouse.AbsolutePage = intPage
    intRecCount = rshouse.PageSize
    intPageCount = rshouse.PageCount
%>

<br>
<br>
<br>

<center>

<table cellspacing="2" cellpadding="2" border="0" style="width: 90%">
<tr>
    <td valign="top" style="width: 270px"><img src="BinProvehusePic.asp?id=<%=rshouse("id")%>&DBImageName=largeimage" border="0"></td>
    <td valign="top"><font face="Verdana,Geneva,Arial,Helvetica,sans-serif" color="#666666" size="2"><b><%=rshouse("headline")%></b></font><br><font face="Verdana,Geneva,Arial,Helvetica,sans-serif" color="#993333" size="1"><b>D. <%=rshouse("dates")%><br>Kl. <%=rshouse("starttime")%> til <%=rshouse("endtime")%></b></font><br><font face="Verdana,Geneva,Arial,Helvetica,sans-serif" color="#666666" size="1"><%=rshouse("description")%></font></td>
</tr>
<tr>
    <td valign="top" style="width: 270px"><table align="center" width="100%" cellspacing="0" cellpadding="0" border="0">
                    <tr>
                        <td width="50%" valign="top"><%
                                                        If Clng(intPage) > 1 Then
                                                          Response.Write "<a href=provehus.asp?catid=" & trim(request.querystring("catid")) & "&page=" & intPage - 1 & "><img src=../img/forrige.gif alt=Forrige border=0></a>"
                                                        Else
                                                          Response.Write "&lt;&lt;"
                                                        End If
                                                       
                                                        Response.Write "&nbsp;"
                                                      %></td>
                        <td width="50%" align="right" valign="top"><%
                                                                    If Clng(intPage) < Clng(intPageCount) Then
                                                                      Response.Write "<a href=provehus.asp?catid=" & trim(request.querystring("catid")) & "&subid=" & trim(request.querystring("subid")) & "&page=" & intPage + 1 & "><img src=../img/next.gif alt=Videre border=0></a> "
                                                                    Else
                                                                      Response.Write "&gt;&gt;"
                                                                    End If
                                                                    %></td>
                    </tr>
                    </table></td>
    <td valign="top">&nbsp;</td>
</tr>
</table>           

               
</center>               
                   
<% end if %>
Avatar billede lasserasch Juniormester
24. juni 2006 - 03:02 #1
Nu har jeg ikke lige kigget din kode igennem, men umiddelbart har jeg da denne kommentar :

ID er det fortløbende nummer?

Altså hvis ID = 2 på den side du har loaded.
Er ID så = 3 på næste side og 1 på forige side?

I så fald kan du vel bare trække 1 fra og lægge 1 til, så du i dit link referer til et ID nummer der er en lavere eller en højere end nuværende ID! Så vil du jo få det rigtige ID nummer ind i din SQL!

/Lasserasch
Avatar billede stkol Nybegynder
24. juni 2006 - 11:14 #2
Hej Lasserash

Det skulle man tro, men man har mulighed for at slette en side, hvilket vil sige at der kan være et spring i ID strukturen sådan at hvis man har 6 sider vil der være ID'er som ser sådan her ud : 2,3,4,8,9,12

Derfor kan man ikke bare sige +1 eller -1

/Stig :-)
Avatar billede lasserasch Juniormester
24. juni 2006 - 13:18 #3
Okay. Dette er måske ikke den optimale løsning, men umiddelbart skulle dette virke!

"select top 3 ID from house where id >= (select top 1 ID from house where id<1 order by ID) order by ID"

SQL'en skulle give dig de 3 records du har brug for. Dem kan du så bladre igennem med rs.movnext osv...

Hvis du står i højeste record og kører SQL'en, så fejler den da der jo ikke er flere records. Der må du så have noget fejlhåndtering på!

/Lasserasch
Avatar billede stkol Nybegynder
24. juni 2006 - 13:36 #4
Hmm ja og så lave den top * udfra mit count !! Det vil nok virke! Men så har jeg problemet med at når jeg skal have fat i f.eks. ID 9 fra mit link i venstre side med f.eks

sqlhouse = "SELECT * FROM house WHERE id = " & Request.Querystring("linkid")

Får jeg ikke muligheden for at bladre! det du nævner giver mig jo ikke muligheden for at finde den nøjagtige record i første hug! :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester