Avatar billede lunaus Nybegynder
29. april 2004 - 22:43 Der er 2 kommentarer og
1 løsning

Visning af varer

Hej Experter.

Jeg har et problem med at få vist nogle varer hentet fra en asp database på den rigtige måde.
Funktionen skal vælge varer fra databasen alt efter hvilken kategori brugeren ahr valgt og herefter vise fire varer pr side og regne ud hvor mange sider det hele vil fylde. Dette skal bruges til at udskrive en form for sidetæller på siden som illustrerer overfor brugeren hvor mange sider der er at navigere i. Navigationen mellem de forskellige sider foregår således v. hj. af dette sideindex.

Jeg har følgende kode, som ser ud til at gøre noget rigtigt og så alligevel ikke. Der bliver altid udskrevet 4 varer på siden uanset hvilken side man er på. Og hvis man så til gengæld har 5 varer i en vises kun de 4 første og der indikeres ikke en side 2.

Hvad går der galt?


<%@language="vbscript"%>
<!--#include file="conn.asp"-->

<%
set rs=server.createobject("ADODB.recordset")

aktuelSide=0
aktuelSide=request.Querystring("aktuelSide")

varerprSide = 4
startPunkt = ((aktuelSide-1)*varerprSide)+1

If startPunkt < 4 Then
    startPunkt = 4
End If

strSQL = "SELECT TOP "&varerprSide&" * from (SELECT TOP "&startpunkt&" * FROM vare where kategoriid="&dkategoriid&" ORDER by vareid DESC) ORDER by vareid ASC"

x=0

rs.open strSQL,conn

do while not rs.eof AND not rs.eof

!!! Her er en større definition af udskriften af varerne i som er fjernet !!!       

rs.movenext
loop

rs.close

' sidetal:
strSQL = "SELECT count(*) AS antal FROM vare WHERE kategoriid = "&dkategoriid
rs.open strSQL,conn

antalVarer = rs("antal")
antalSider = CLng(antalVarer/varerprSide)

If antalSider > 1 Then
udskrivSider = ""
   
    For i = 1 to antalSider
        if i = aktuelSide Then
        udskrivSider = udskrivSider & "<img src='grafik/tal/"&i&"_aktiv.gif' border='0'>"
    Else
            udskrivSider = udskrivSider & "<a href='vis.asp?aktuelSide="&i&"&kategoriid="&dkategoriid&"'><img src='grafik/tal/"&i&".gif' border='0'></a>"
    End If
    Next
End If

rs.close
set rs=nothing
conn.close
set conn=nothing



%>
Avatar billede eagleeye Praktikant
29. april 2004 - 22:58 #1
Prøv at rette din SQL:

strSQL = "SELECT TOP "&varerprSide&" * from (SELECT TOP "&startpunkt&" * FROM vare where kategoriid="&dkategoriid&" ORDER by vareid DESC) ORDER by vareid ASC"

Til denne:

strSQL = "SELECT * FROM (SELECT TOP "&varerprSide&" * from (SELECT TOP "&startpunkt&" * FROM vare where kategoriid="&dkategoriid&" ORDER by vareid) ORDER BY vareid DESC) ORDER BY vareid;"



samt dette:

aktuelSide=0
aktuelSide=request.Querystring("aktuelSide")

Bør nok skrives som dette:

aktuelSide=request.Querystring("aktuelSide")
if aktuelSide="" then aktuelSide=0
Avatar billede lunaus Nybegynder
29. april 2004 - 23:31 #2
Tak for det hurtige svar. Det løste desværre ikke problemet :-(
Hvad går der galt siden funktionen bar begynder at vise forfra når den kommer til enden. Lige nu viser den altid 4 varer pr side uanset hvor mange der passer til kriterierne. Og hvis der er 5 i en kategori vises den femte ikke på en side for sig selv. Funktionen registrer slet ikke at der er en femte vare.....
Avatar billede lunaus Nybegynder
29. april 2004 - 23:55 #3
Smutter for idag. Håber vi kan løse problemet i løbet af imorgen :-)
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