Avatar billede cskaade Nybegynder
29. april 2002 - 18:47 Der er 9 kommentarer og
1 løsning

Frem og tilbage knap

Jeg har et problem da jeg ved hvilken SQL kommando jeg skal bruge og det er LIMIT se evt. her under, jeg har prøvet at spørger i MySQL gruppen men der bliv jeg hnd vist til ASP gruppen så jeg håber i kan hjælpe mig.

SELECT * FROM tabel LIMIT 0,10 tager de først ti poster
SELECT * FROM tabel LIMIT 10,10  tager fra post ti og ti poster frem

Hvordan får jeg lavet mine frem og tilbage knapper så de bliver aktiv når man kan gå frem eller tilbage, jeg håber i forstår og kan hjælpe mig.

mvh.

cskaade
Avatar billede eagleeye Praktikant
29. april 2002 - 19:16 #1
Hej jeg har denne kode som sætter tal ind fra 1 til x:

'Dette finder den aktuelle side
pageitems = 20 'Angiver antal pr side.. 10 i dit tilfælde
page = request("page") 'hendter hvilekn side den skal vise.
if page = "" then page = 0 'Hvis page er tom sættes default til page 0(1)


'Hendter de records som skal udskrives
mySQLLIMIT = " LIMIT " & page*pageitems & ", " & pageitems
strSQL = "SELECT * FROM messages ORDER BY IDman DESC" & mySQLLIMIT & ";"
Set rs = myConn.Execute(strSQL)

'Udsrkiv..med rs("FELTER")



strSQL = "SELECT Count(ID) as maxID FROM messages;" 'Find antal records
Set rs = myConn.Execute(strSQL)
maxRecords = rs("maxID")
rs.Close
'Disse linier laver 1 2 3 4 5 6 osv.

'Udskriv "forrige "
if page > 0 then
  Response.write "<a href=""guestbook.asp?page=" & page-1 &""">forrige " & "</a> " 
end if

  pageCounter = 0
  do while (maxRecords > 0)
    if CInt(page) = CInt(pageCounter) then
      Response.write "" & pageCounter + 1 & " "
    else
      Response.write "<a href=""guestbook.asp?page=" & pageCounter &""">" & pageCounter + 1 & "</a> "
    end if
    pageCounter = pageCounter + 1
    maxRecords = maxRecords - pageitems
  loop

'Udskriv " næste"
if page < pageCounter then
  Response.write "<a href=""guestbook.asp?page=" & page+1 &"""> næste" & "</a> " 
end if



Det skal rettes til så det passer med din database samt filnavn.
Avatar billede cskaade Nybegynder
29. april 2002 - 21:52 #2
Det virker næsten men jeg har lige to spørgsmål jeg håber du kan svare på.

Første, hvordan kan det være at når man kommer ind på siden og det antal poster der er i tabellen passer med dem der skal vise så skriver den næste.

Andet, når man går tilbage side et så skriver den ikke næste længer.
Avatar billede eagleeye Praktikant
29. april 2002 - 22:00 #3
til Første:
Det skal vist være:

'Udskriv " næste"
if page < (pageCounter-1) then
  Response.write "<a href=""guestbook.asp?page=" & page+1 &"""> næste" & "</a> " 
end if
Avatar billede eagleeye Praktikant
29. april 2002 - 22:09 #4
Der skal Cint omkring lige som de andre steder...


'Udskriv " næste"
if Cint(page) < CInt((pageCounter-1)) then
  Response.write "<a href=""guestbook.asp?page=" & page+1 &"""> næste" & "</a> " 
end if
Avatar billede eagleeye Praktikant
29. april 2002 - 22:14 #5
Der skal vist også CInt på forrige

'Udskriv "forrige "
if CInt(page) > 0 then
  Response.write "<a href=""guestbook.asp?page=" & page-1 &""">forrige " & "</a> " 
end if



Hvis du vil havde forrige og næste til at stå der selvom der ikke er en forrige/næste side men unden link sætter du bare en Else på:

if CInt(page) > 0 then
  Response.write "<a href=""guestbook.asp?page=" & page-1 &""">forrige " & "</a> " 
else
  Response.write "forrige "
end if
Avatar billede cskaade Nybegynder
29. april 2002 - 22:17 #6
Nu virker det med næste har du evt. også et forslag mit første spørgsmål da jeg ikke kan forstå hvorfor der skal stå næste når der ikke er flere poster men det er ikke noget når man klikker på næste og så tilbage igen så står der ikke næste mere kan det var noget med hvordan den læser ’page’
Avatar billede eagleeye Praktikant
29. april 2002 - 22:20 #7
Ja det er fordi den læser den som streng og man tester som tal, derfor skal der CInt omkring :

'Udskriv " næste"
if Cint(page) < CInt((pageCounter-1)) then
  Response.write "<a href=""guestbook.asp?page=" & page+1 &"""> næste" & "</a> " 
end if
Avatar billede cskaade Nybegynder
29. april 2002 - 22:41 #8
Du skal ha mange tak du drømmer ikke om hvor mange timer jeg har brugt på søge efter sådan en kode her og nu virker den bare som den skal mange tak.
Avatar billede gp Nybegynder
09. maj 2002 - 16:33 #9
Kan den også bruges hvis jeg har en tabel hvor der ex. også er billeder?
Avatar billede eagleeye Praktikant
09. maj 2002 - 18:32 #10
Det skulle jeg mene..Det eneste som er en forudsætning er at der er en kolonne som er autonummer/autoincrement ID.

Du han rette denne SQL til så den tæller antallet af record i billede tabellen:

strSQL = "SELECT Count(ID) as maxID FROM billedetabel;" 'Find antal records


Ligeledes skal du rette oppe i staren som udskriver på siden:

'Hendter de records som skal udskrives
mySQLLIMIT = " LIMIT " & page*pageitems & ", " & pageitems
strSQL = "SELECT * FROM billedetabel ORDER BY ID DESC" & mySQLLIMIT & ";"
Set rs = myConn.Execute(strSQL)

'Udsrkiv..med rs("FELTER")
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