Avatar billede eromaster Nybegynder
23. juli 2003 - 13:57 Der er 10 kommentarer og
1 løsning

Hvis ikke så move.next - anden omgang

Jeg har lige stillet dette spørgsmål http://www.eksperten.dk/spm/379003 og var vist lidt for hurtigt til at acceptere.
Min kode:

      <%
      Set DataConn = Server.CreateObject("ADODB.Connection")
      DSN = "DRIVER={Microsoft Access Driver (*.mdb)};uid=admin; "
      DSN = dsn & "DBQ=" & server.mappath("db/nyheder.mdb")
      DataConn.Open DSN
     
      Set nyhed = Server.CreateObject("ADODB.RecordSet")
      nyhed.open "Select Top 20 * From [nyheder] order by id desc", DataConn
     
      if not nyhed("sektion") = request.querystring("sektion") then
      nyhed.MoveNext
      end if
     
      if not nyhed.EOF then
      nyhed.MoveFirst
      end if
      antal=0
      do while not nyhed.EOF
      %>
           
     
<% if antal < 5 then %>   
<a href="test.asp?id=<%=nyhed("id")%>"><img src=<%=nyhed("logo")%>></a>
<br>
 
<%else%>

<a href="test.asp?id=<%=nyhed("id")%>"><%=nyhed("overskrift")%></a>
<br>
<%end if %>


      <%
      antal=antal+1
      nyhed.MoveNext
      loop
      nyhed.Close
      set nyhed = nothing
      Dataconn.Close
      %>

Den springer godt nok over dem som den skal springe over, men lad os nu sige at der 2 den ikke skal vise, så viser den kun 18 istedet for 20?
Avatar billede the_bma_man Nybegynder
23. juli 2003 - 14:22 #1
Så lad være med at select top 20 - men bare en select.
Og loop på antallet sammen med nyhed.EOF
Avatar billede eromaster Nybegynder
23. juli 2003 - 14:39 #2
ikke forstået, please et eksempel. Jeg skal kun have 20 poster ud af databasen!
Avatar billede c Nybegynder
23. juli 2003 - 14:47 #3
<%
      Set DataConn = Server.CreateObject("ADODB.Connection")
      DSN = "DRIVER={Microsoft Access Driver (*.mdb)};uid=admin; "
      DSN = dsn & "DBQ=" & server.mappath("db/nyheder.mdb")
      DataConn.Open DSN
     
      Set nyhed = Server.CreateObject("ADODB.RecordSet")
      nyhed.open "Select Top 20 * From [nyheder] order by id desc", DataConn
     
      if not (nyhed.BOF OR nyhed.EOF) then
      nyhed.MoveFirst
      end if
      For antal=0 to 20
      %>

<a href="test.asp?id=<%=nyhed("id")%>"><img src=<%=nyhed("logo")%>></a>
<br>
<%
antal = antal +1
rs.MoveNext
else
nyhed.MoveNext
end if %>


      <%
      antal=antal+1
      nyhed.MoveNext
      loop
      nyhed.Close
      set nyhed = nothing
      Dataconn.Close
      %>


Jeg mener at dette skal virke... men er ikke helt sikker... kan ikke lige overskue din kode.

mvh
Christian
Avatar billede longshanks Nybegynder
23. juli 2003 - 14:50 #4
prøv det her...
<%
      Set DataConn = Server.CreateObject("ADODB.Connection")
      DSN = "DRIVER={Microsoft Access Driver (*.mdb)};uid=admin; "
      DSN = dsn & "DBQ=" & server.mappath("db/nyheder.mdb")
      DataConn.Open DSN
     
      Set nyhed = Server.CreateObject("ADODB.RecordSet")
      nyhed.open "Select * From [nyheder] order by id desc", DataConn
     

    if not nyhed.EOF then
      antal=0
     
      countTo20 = 0
      do while not nyhed.EOF OR not countTo20 = 20
     
      if not nyhed("sektion") = request.querystring("sektion") then
      nyhed.MoveNext
      else
      countTo20 = countTo20+1
      end if
     
if antal < 5 then %>   
<a href="test.asp?id=<%=nyhed("id")%>"><img src=<%=nyhed("logo")%>></a>
<br>
 
<%else%>

<a href="test.asp?id=<%=nyhed("id")%>"><%=nyhed("overskrift")%></a>
<br>
<%end if %>


      <%
      antal=antal+1
      nyhed.MoveNext
      loop
      nyhed.Close
      set nyhed = nothing
      Dataconn.Close
      end if
      %>
Avatar billede longshanks Nybegynder
23. juli 2003 - 14:53 #5
du burde egentligt kunne gøre det i SQL strengen alene..

"Select Top 20 * From [nyheder] where Sektion = "& nyhed("Sektion") &" order by id desc"

brug din gamle kode, og udskrift SQL strengen med denne, det må være det nemmeste...
Avatar billede eromaster Nybegynder
23. juli 2003 - 15:15 #6
Hvad betyder dette?

kode:
nyhed.open "Select Top 20 * From [nyheder] where sektion = "& request.QueryString("sektion")) &" order by id desc", DataConn

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.
Avatar billede eromaster Nybegynder
23. juli 2003 - 15:16 #7
request.QueryString("sektion")) = request.QueryString("sektion")

Stadig samme fejl
Avatar billede longshanks Nybegynder
23. juli 2003 - 15:22 #8
væk med det nedenfor:

if not nyhed("sektion") = request.querystring("sektion") then
      nyhed.MoveNext
end if

nyhed.open "Select Top 20 * From [nyheder] where sektion = '"& request.QueryString("sektion")) &"' order by id desc", DataConn

betyder at du vælger alle de records hvor Sektion navnet er = den queryString du sender med over.(jeg ved ikke lige hvad du kalder sektionerne :-)) jeg glemte to ' tegn i den sql streng jeg gav dig før, den ovenfor skulle være bedre...
Avatar billede eromaster Nybegynder
23. juli 2003 - 15:25 #9
det er tal det hele
Avatar billede eromaster Nybegynder
23. juli 2003 - 15:25 #10
det hjalp sgu
Avatar billede longshanks Nybegynder
23. juli 2003 - 17:20 #11
Fik du det til at virke efter hensigten så :-)
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