Avatar billede phineas_phreak Nybegynder
14. november 2002 - 09:49 Der er 6 kommentarer og
1 løsning

udtrække poster og udskriver i 2 kolonner

ja spørgsmålet siger vel det hele. Jeg har en række poster som jeg henter ud fra en DB. Jeg ønsker dem udskrevet i 2 kolonner (side om side altså). hvordan gør jeg det ?

Jeg har prøvet at lade ID være afgørende for hvor posten skal stå. Hvis ID = lige venstre kolonne ellers højre kolonne. Men jeg ved slet ik om måden jeg gør det på er rigtig. kode:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../db/arkiv.mdb")
SQL1 = "SELECT * FROM rating WHERE ID MOD 2 = 1"
SQL2 = "SELECT * FROM rating WHERE ID MOD 2 = 0"
Set rs1 = conn.Execute(SQL1)
Set rs2 = conn.Execute(SQL2)
%>

nu vil jeg så udskrive:

<table>

<%
  DO WHILE NOT E0F
      billede = rs1("billede")
      stemmer = rs1("stemmer")
   
    billede2 = rs2("billede")
      stemmer2 = rs2("stemmer")
%>

<tr>
    <td><%=billede%></td>
   
    <td><%=billede2%></td>

</tr>   

<%
  rs1.MoveNext
  rs2.MoveNext
  LOOP
  rs1.Close
  rs2.Close
       
conn.Close
Set conn = nothing
Set SQL1 = nothing
Set SQL2 = nothing
%>

</table>

Det der sker er at billederne kommer ud som de skal, MEN som i også kan se er der problemer med EOF. Ved at den ik er rigtig som den står nu, Men hvad skal der stå i stedet ?
Er det overhovedet muligt/korrekt at lave det på den måde, eller kan det laves anderledes og lettere ?

S.U. snarest.

MHV Christopher
Avatar billede phineas_phreak Nybegynder
14. november 2002 - 09:51 #1
skal selvfølgelig også lige siges at hvis antallet af poster er ULIGE får jeg ik udskrevet den sidste selvfølgelig
Avatar billede a-torsten Nybegynder
14. november 2002 - 09:53 #2
De skal altså skrives ud sådan her

Billede1  Billede2
Billede3  Billede4
Billede5

ovs..??
Avatar billede medions Nybegynder
14. november 2002 - 09:55 #3
<%
  DO WHILE NOT rs1.E0F
      billede = rs1("billede")
      stemmer = rs1("stemmer")
   
    billede2 = rs2("billede")
      stemmer2 = rs2("stemmer")
%>

<tr>
    <td><%=billede%></td>
   
    <td><%=billede2%></td>

</tr>   

<%
  rs1.MoveNext
  rs2.MoveNext
  LOOP
  rs1.Close
  rs2.Close
       
conn.Close
Set conn = nothing
Set SQL1 = nothing
Set SQL2 = nothing
%>

//>Rune
Avatar billede phineas_phreak Nybegynder
14. november 2002 - 10:00 #4
a-torsten >> ja det er også en ide. Men som sagt havde jeg ingen ide om hvordan det gøres. Derfor valgte jeg at PRØVE på den anden måde da det virkede nemt og logisk.

medions >> bemærk at jeg bruger 2 SQL statements. Derfor er det IKKE nok at rs1.EOF er opfyldt. rs2.EOF skal også gælde.
Avatar billede a-torsten Nybegynder
14. november 2002 - 10:01 #5
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../db/arkiv.mdb")
SQL = "SELECT * FROM rating"

Set rs = conn.Execute(SQL)
counter = "0"
     
    Response.write "<table>"  & vbCrLf
    DO WHILE NOT rs.E0F

    if counter = "0" then
    Response.write "<tr>"  & vbCrLf
    end if

    response.write "<td>" & rs("Billede") &"</td>" & vbCrLf
    counter = counter + 1

    if counter = "2" then
    Response.write "</tr>"  & vbCrLf
    counter = "0"
    end if

<%
    rs.MoveNext
    LOOP

    Response.write "</table>"  & vbCrLf

    rs.Close
    conn.Close
    Set conn = nothing
    Set SQL = nothing
%>
Avatar billede a-torsten Nybegynder
14. november 2002 - 10:19 #6
Denner er nok bedre...

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../db/arkiv.mdb")
SQL = "SELECT * FROM rating"

Set rs = conn.Execute(SQL)
counter = "0"
     
    Response.write "<table>"  & vbCrLf
    DO WHILE NOT rs.E0F

    if counter = "0" then
    Response.write "<tr>"  & vbCrLf
    end if

    response.write "<td>" & rs("Billede") &"</td>" & vbCrLf
    counter = counter + 1

    if counter = "2" then
    Response.write "</tr>"  & vbCrLf
    counter = "0"
    end if

<%
    rs.MoveNext
    LOOP
    if counter = "1" then
    Response.write"<td></td>"  & vbCrLf
    Response.write "</tr>"  & vbCrLf
    end if
    Response.write "</table>"  & vbCrLf

    rs.Close
    conn.Close
    Set conn = nothing
    Set SQL = nothing
%>

-Anders
Avatar billede phineas_phreak Nybegynder
14. november 2002 - 10:23 #7
herligt. Så skal det bare lige sættes op. Det er jo en udfordring i sig selv med alle de " og ' der skal sættes.

Takker
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