01. januar 2005 - 21:07Der er
8 kommentarer og 1 løsning
En Frem/Tilbage-funktion til en MySQL-database
Jeg sidder og leger med en hjemmeside, hvor jeg har lavet en billed-sektion opdelt i kategorier, som har ID'er.
Når man er i en kategori, skal der være to links: - Tilbage-link der fører tilbage til forrig billed-sektion: Altså ID - 1 - Frem-link der fører frem til næste billed-sektion: Altså ID + 1
Derudover skal siden checke om den ID overhovedet eksisterer i databasen. Hvis den ikke gør, skal linket før frem til næste ID igen hvis det er et frem-link, eller til forrige ID igen hvis det er et tilbage-link.
Er der nogen der har forslag til hvordan dette kan gøres?
<% curid=request.querystring("picno") set myConn = Server.createObject("adodb.connection") myConn.open strtildb
if curid = "" then curid=1 end if
set rs = myConn.execute("select * from billeder where id= " & curid & " LIMIT 1") if not rs.eof billede = rs("billede") else set rs2 = myConn.execute("SELECT id from billeder where id > " & curid & " LIMIT 1") if not rs2.eof then response.redirect ("?picno="&rs2("id")) else rs2.close set rs2 = myConn.execute("SELECT id FROM billeder WHERE id < " & curid & " LIMIT 1") if not rs2.eof then response.redirect ("?picno="&rs2("id")) else response.write "No pictures found" end if rs2.close
set rs2 = myConn.execute("select id from billeder where id < " & curid & " LIMIT 1") if not rs2.eof then response.write "<a href='?picno="&rs2("id")&"'>Forrige</a>" end if rs2.close
response.write "<img src="""&rs("billede")&""">"
set rs2 = myConn.execute("select id from billeder where id > " & curid+1 & "LIMIT 1") if not rs2.eof then response.write "<a href='?picno="&rs2("id")&"'>Forrige</a>" end if rs2.close set rs2 = nothing rs.close set rs = nothing %>
Du kan gøre det på denne måde... Det gør dog ikke helt som du ønsker med hensyn til frem og tilbage links. Hvis den møder et id den ikke kender, så spørger den efter et id der er en større.
Hvis det ikke findes spørger den på et der er en lavere.. Hvis det heller ikke findes, så er der ikke nogen billeder, og det skrives til brugeren... Ellers vises frem og tilbagelinks.. samt billeder...
Så skal du bare tilpasse stien til databasen, samt feltnavnene..
<% curid=request.querystring("picno") set myConn = Server.createObject("adodb.connection") myConn.open strtildb
if curid = "" then curid=1 end if
set rs = myConn.execute("select * from billeder where id= " & curid & " LIMIT 1") if not rs.eof billede = rs("billede") else set rs2 = myConn.execute("SELECT id from billeder where id > " & curid & " LIMIT 1") if not rs2.eof then response.redirect ("?picno="&rs2("id")) else rs2.close set rs2 = myConn.execute("SELECT id FROM billeder WHERE id < " & curid & " LIMIT 1") if not rs2.eof then response.redirect ("?picno="&rs2("id")) else response.write "No pictures found" end if end if end if rs2.close
set rs2 = myConn.execute("select id from billeder where id < " & curid & " LIMIT 1") if not rs2.eof then response.write "<a href='?picno="&rs2("id")&"'>Forrige</a>" end if rs2.close
response.write "<img src="""&rs("billede")&""">"
set rs2 = myConn.execute("select id from billeder where id > " & curid+1 & "LIMIT 1") if not rs2.eof then response.write "<a href='?picno="&rs2("id")&"'>Forrige</a>" end if rs2.close set rs2 = nothing rs.close set rs = nothing %>
og så et svar.. Så tror jeg jeg har husket det hele.. Så smutter jeg vidst i seng..
Synes godt om
Slettet bruger
02. januar 2005 - 12:40#6
@ellebaek: Jeg sad og knoklede med koden i næsten en time, men kunne bare ikke få de til at fungere, desværre.
@mortvader: Din kode fungerede fint, når jeg lavede små ændringer og justeringer. Her er hvad jeg har gjort:
StrCatNow = request("cat") if StrCatNow = "" OR not isNumeric(StrCatNow) then StrCatNow = 1 end if
Set rs = Server.CreateObject("ADODB.RecordSet") rs.Open "SELECT * FROM galleri_cat where ID = "&StrCatNow-1&"", Conn, 1, 3 if not rs.EOF then response.write("<a href='?content=galleri&cat="&StrCatNow-1&"'>Forrige</a>") else response.write("Forrige") end if rs.close
Set rs = Server.CreateObject("ADODB.RecordSet") rs.Open "SELECT * FROM galleri_cat where ID = "&StrCatNow+1&"", Conn, 1, 3 if not rs.EOF then response.write("<a href='?content=galleri&cat="&StrCatNow+1&"'>Næste</a>") else response.write("Næste") end if rs.close
For det du nu har givet points for kan jo ikke chekke for om et id ikke eksistere ??
Altså hvis du har en billedeserie med følgende id: 1 2 4 5 6 8 så vil du få problemer med billederne 3 og 7, da de ikke eksistere..
vil mene du skal benytte den her for at sikre brugerne ikke rammer billeder der ikke findes: prøv det og se om det ikke virker også..!?
<% curid=request.querystring("picno") set myConn = Server.createObject("adodb.recordset")
if curid = "" or NOT isnumeric(curid) then curid=1 end if
rs.Open "select * FROM galleri_cat where id= " & curid & " LIMIT 1", Conn, 1, 3
if not rs.eof billede = rs("billede") rs.close else rs.close rs.open "SELECT id FROM galleri_cat where id > " & curid & " LIMIT 1", Conn, 1, 3 if not rs.eof then response.redirect ("?picno="&rs("id")) rs.close else rs.close rs.open SELECT id FROM galleri_cat WHERE id < " & curid & " LIMIT 1", Conn, 1, 3 if not rs.eof then rs.close response.redirect ("?picno="&rs2("id")) else rs.close response.write "No pictures found" end if end if end if
rs.open "select id FROM galleri_cat where id < " & curid & " LIMIT 1", Conn, 1, 3 if not rs.eof then response.write "<a href='?picno="&rs("id")&"'>Forrige</a>" else response.write "Forrige" end if rs.close
response.write "<img src="""&billede&""">"
rs.open "select id FROM galleri_cat where id > " & curid+1 & "LIMIT 1", Conn, 1, 3 if not rs.eof then response.write "<a href='?picno="&rs("id")&"'>Næste</a>" else response.write "Næste" end if rs.close set rs = nothing %>
Havde lidt misforstået den del.. derudover skal siden checke om den ID overhovedet eksisterer i databasen. Hvis den ikke gør, skal linket før frem til næste ID igen hvis det er et frem-link, eller til forrige ID igen hvis det er et tilbage-link.
Havde egentlig forstået ovenstående som at hvis id'et for billedet ikke fandtes i databasen, så skulle der sendes videre til det næste billede der fandtes i databasen..
men aliaarhus -> Jeg synes du skal prøve det jeg skrev til sidst netop for at sikre der er et billede der bliver vist til brugeren..
Synes godt om
Ny brugerNybegynder
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.